diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-09-04 23:31:40 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-09-04 23:31:40 -0700 |
commit | af4c04c426cca3b73e58ab7464119db28252984c (patch) | |
tree | 500f4bd45710fd73028f5946750aa88cb166533d /src/arch/x86/insts | |
parent | 310912cf2ccae3a4e9e3505cc3316d778daa2ec8 (diff) | |
download | gem5-af4c04c426cca3b73e58ab7464119db28252984c.tar.xz |
X86: Add floating point micro registers.
--HG--
extra : convert_revision : 442a5f8b9216638e4e6898f89eacb8695719e20f
Diffstat (limited to 'src/arch/x86/insts')
-rw-r--r-- | src/arch/x86/insts/static_inst.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/arch/x86/insts/static_inst.cc b/src/arch/x86/insts/static_inst.cc index 948a74bc1..4f6ec5390 100644 --- a/src/arch/x86/insts/static_inst.cc +++ b/src/arch/x86/insts/static_inst.cc @@ -192,7 +192,19 @@ namespace X86ISA } ccprintf(os, suffix); } else if (reg < Ctrl_Base_DepTag) { - ccprintf(os, "%%f%d", reg - FP_Base_DepTag); + int fpindex = reg - FP_Base_DepTag; + if(fpindex < NumMMXRegs) { + ccprintf(os, "%%mmx%d", reg - FP_Base_DepTag); + return; + } + fpindex -= NumMMXRegs; + if(fpindex < NumXMMRegs) { + ccprintf(os, "%%xmm%d_%s", fpindex / 2, + (fpindex % 2) ? "high": "low"); + return; + } + fpindex -= NumXMMRegs; + ccprintf(os, "%%ufp%d", fpindex); } else { switch (reg - Ctrl_Base_DepTag) { default: |