summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-07-17 16:50:13 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-07-17 16:50:13 -0700
commit62ffc71faba7f2cf05ab7e3fc0624a2c12bf6486 (patch)
treefcbb3c4fe2ef16a72616e28658c532ea9963e29d
parentd77d4c04b702fd8af1d268893bd71e7245f9c542 (diff)
downloadgem5-62ffc71faba7f2cf05ab7e3fc0624a2c12bf6486.tar.xz
Use limm to set up immediate value for subtract instruction.
--HG-- extra : convert_revision : f94e391e36a47c2f5222f30d7e28f48f7875db58
-rw-r--r--src/arch/x86/isa/insts/arithmetic/add_and_subtract.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/arch/x86/isa/insts/arithmetic/add_and_subtract.py b/src/arch/x86/isa/insts/arithmetic/add_and_subtract.py
index 809b9ac7c..fbfe4be7e 100644
--- a/src/arch/x86/isa/insts/arithmetic/add_and_subtract.py
+++ b/src/arch/x86/isa/insts/arithmetic/add_and_subtract.py
@@ -56,21 +56,24 @@
microcode = '''
def macroop SUB_R_I
{
- subi reg, reg, imm
+ limm t1, imm
+ sub reg, reg, t1
};
def macroop SUB_M_I
{
+ limm t2, imm
ld t1, ds, [scale, index, base], disp
- subi t1, t1, imm
+ sub t1, t1, t2
st t1, ds, [scale, index, base], disp
};
def macroop SUB_P_I
{
rdip t7
+ limm t2, imm
ld t1, ds, [scale, index, base], disp
- subi t1, t1, imm
+ sub t1, t1, t2
st t1, ds, [scale, index, base], disp
};
'''