Implement some forms of add.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 18 Jul 2007 23:33:56 +0000 (16:33 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 18 Jul 2007 23:33:56 +0000 (16:33 -0700)
--HG--
extra : convert_revision : adbff2e9b9952ec09853cc43d40243e7262410a7

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

index 6c54f77bcf1d7145c43977a52353dbde13b97391..82e50e7451370400b5057025842ee8eaa1dd8211 100644 (file)
             }
             //0x3: group1_Ev_Ib();
             0x3: decode MODRM_REG {
-                0x0: add_Ev_Ib();
+                0x0: Inst::ADD(Ev,Ib);
                 0x1: or_Ev_Ib();
                 0x2: adc_Ev_Ib();
                 0x3: sbb_Ev_Ib();
index fbfe4be7e412ad6ac04239033820862fc742ee99..4d6e40c7458254d7506e025be9c0ba948fa574dd 100644 (file)
 # Authors: Gabe Black
 
 microcode = '''
+def macroop ADD_R_I
+{
+    limm t1, imm
+    add reg, reg, t1
+};
+
+def macroop ADD_M_I
+{
+    limm t2, imm
+    ld t1, ds, [scale, index, base], disp
+    add t1, t1, t2
+    st t1, ds, [scale, index, base], disp
+};
+
+def macroop ADD_P_I
+{
+    rdip t7
+    limm t2, imm
+    ld t1, ds, [scale, index, base], disp
+    add t1, t1, t2
+    st t1, ds, [scale, index, base], disp
+};
+
 def macroop SUB_R_I
 {
     limm t1, imm