From e4c01713562f51847537c5724bc629ce4bdcf3bc Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 6 Sep 2007 16:27:28 -0700 Subject: X86: Rework the multiplication microops so that they work like they would in the patent. --HG-- extra : convert_revision : 6fcf5dee440288d8bf92f6c5c2f97ef019975536 --- src/arch/x86/intregs.hh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/arch/x86/intregs.hh') 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__ -- cgit v1.2.3