Use limm to set up immediate value for subtract instruction.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 17 Jul 2007 23:50:13 +0000 (16:50 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 17 Jul 2007 23:50:13 +0000 (16:50 -0700)
--HG--
extra : convert_revision : f94e391e36a47c2f5222f30d7e28f48f7875db58

src/arch/x86/isa/insts/arithmetic/add_and_subtract.py

index 809b9ac7cd04d06833bbb1670c1b786102b3f434..fbfe4be7e412ad6ac04239033820862fc742ee99 100644 (file)
 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
 };
 '''