Partially implement "POP"
authorGabe Black <gblack@eecs.umich.edu>
Wed, 13 Jun 2007 18:06:34 +0000 (18:06 +0000)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 13 Jun 2007 18:06:34 +0000 (18:06 +0000)
--HG--
extra : convert_revision : ba454579a6a82ce4924102a633e5758fb2a30b2d

src/arch/x86/isa/decoder/one_byte_opcodes.isa
src/arch/x86/isa/insts/data_transfer/stack_operations.py

index c29133a5cc73e701dfa320e5ca9d39ab83c9f457..72fbf289690e11a1c91ce88447ef9c4dd68a8478 100644 (file)
             0x3: pop_rBX();
             0x4: pop_rSP();
             0x5: pop_rBP();
-            0x6: pop_rSI();
+            0x6: Inst::POP(rSI);
             0x7: pop_rDI();
         }
         0x0C: decode OPCODE_OP_BOTTOM3 {
index bcde139821744553163b1514d2c2f59c99f6e976..3223d9b0f5eb4c68acbf0ce3b29cb703076edbe0 100644 (file)
 #
 # Authors: Gabe Black
 
-microcode = ""
+microcode = '''
+def macroop POP {
+    # There needs to be a load here to actually "pop" the data
+    addi "INTREG_RSP", "INTREG_RSP", "env.dataSize"
+};
+'''
 #let {{
 #    class POP(Inst):
 #      "GenFault ${new UnimpInstFault}"