diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-09-06 16:27:28 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-09-06 16:27:28 -0700 |
commit | e4c01713562f51847537c5724bc629ce4bdcf3bc (patch) | |
tree | e2e30437879036e4fa10e2720112f12cefcfd310 /src/arch/x86/intregs.hh | |
parent | 7f079149f147107070f518fc0a86c45c6c62b2a5 (diff) | |
download | gem5-e4c01713562f51847537c5724bc629ce4bdcf3bc.tar.xz |
X86: Rework the multiplication microops so that they work like they would in the patent.
--HG--
extra : convert_revision : 6fcf5dee440288d8bf92f6c5c2f97ef019975536
Diffstat (limited to 'src/arch/x86/intregs.hh')
-rw-r--r-- | src/arch/x86/intregs.hh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/arch/x86/intregs.hh b/src/arch/x86/intregs.hh index dbbb9f97e..6f252392e 100644 --- a/src/arch/x86/intregs.hh +++ b/src/arch/x86/intregs.hh @@ -58,6 +58,7 @@ #ifndef __ARCH_X86_INTREGS_HH__ #define __ARCH_X86_INTREGS_HH__ +#include "arch/x86/x86_traits.hh" #include "base/bitunion.hh" namespace X86ISA @@ -163,6 +164,31 @@ namespace X86ISA NUM_INTREGS }; + + inline static IntRegIndex + INTREG_MICRO(int index) + { + return (IntRegIndex)(NUM_INTREGS + index); + } + + inline static IntRegIndex + INTREG_PSEUDO(int index) + { + return (IntRegIndex)(NUM_INTREGS + NumMicroIntRegs + index); + } + + inline static IntRegIndex + INTREG_IMPLICIT(int index) + { + return (IntRegIndex)(NUM_INTREGS + NumMicroIntRegs + + NumPseudoIntRegs + index); + } + + inline static IntRegIndex + INTREG_FOLDED(int index, int foldBit) + { + return (IntRegIndex)(((index & 0x1C) == 4 ? foldBit : 0) | index); + } }; #endif // __ARCH_X86_INTREGS_HH__ |