summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts/logical.py
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-06-19 14:18:25 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-06-19 14:18:25 +0000
commit6e286cddfaf6286f96e06c26266070f6fbbd7749 (patch)
treef318b62e376304d0b7f353a68794e4da160f5c8e /src/arch/x86/isa/insts/logical.py
parent8caef7d25a6a150fa6369234bbdc8c14ef637df8 (diff)
downloadgem5-6e286cddfaf6286f96e06c26266070f6fbbd7749.tar.xz
Get rid of the immediate and displacement components of the EmulEnv struct and use them directly out of the instruction. The extra copies are conceptually realistic but are just innefficient as implemented. Also don't use the zeroeth microcode register for general storage since it's now the zero register, and implement a load and a store microops.
--HG-- extra : convert_revision : 0686296ca8b72940d961ecc6051063bfda1e932d
Diffstat (limited to 'src/arch/x86/isa/insts/logical.py')
-rw-r--r--src/arch/x86/isa/insts/logical.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/arch/x86/isa/insts/logical.py b/src/arch/x86/isa/insts/logical.py
index ec0ed97b2..824c75053 100644
--- a/src/arch/x86/isa/insts/logical.py
+++ b/src/arch/x86/isa/insts/logical.py
@@ -61,34 +61,34 @@ def macroop XOR_R_R
def macroop XOR_R_I
{
- limm "NUM_INTREGS", "env.immediate"
- xor "env.reg", "env.reg", "NUM_INTREGS"
+ limm "NUM_INTREGS+1", "IMMEDIATE"
+ xor "env.reg", "env.reg", "NUM_INTREGS+1"
};
def macroop XOR_M_R
{
#Do a load to get one of the sources
- xor "NUM_INTREGS", "NUM_INTREGS", "env.reg"
+ xor "NUM_INTREGS+1", "NUM_INTREGS+1", "env.reg"
#Do a store to write the destination
};
def macroop XOR_R_M
{
#Do a load to get one of the sources
- xor "env.reg", "env.reg", "NUM_INTREGS"
+ xor "env.reg", "env.reg", "NUM_INTREGS+1"
};
def macroop AND_R_I
{
- limm "NUM_INTREGS", "env.immediate"
- and "env.reg", "env.reg", "NUM_INTREGS"
+ limm "NUM_INTREGS+1", "IMMEDIATE"
+ and "env.reg", "env.reg", "NUM_INTREGS+1"
};
def macroop AND_M_I
{
#Do a load to get one of the sources
- limm "NUM_INTREGS", "env.immediate"
- and "NUM_INTREGS", "NUM_INTREGS", "NUM_INTREGS+1"
+ limm "NUM_INTREGS+1", "IMMEDIATE"
+ and "NUM_INTREGS+1", "NUM_INTREGS+1", "NUM_INTREGS+2"
#Do a store to write the destination
};
'''