summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-06-13 18:06:34 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-06-13 18:06:34 +0000
commit715efab3b9ca9334f25601c5a46cfa3975157271 (patch)
treeb302569ba990b9405ebbda39fef156e59e9c5ff0
parentfd45c4a58f5c2fbf77c204c93cc32c88cc98a6a0 (diff)
downloadgem5-715efab3b9ca9334f25601c5a46cfa3975157271.tar.xz
Partially implement "POP"
--HG-- extra : convert_revision : ba454579a6a82ce4924102a633e5758fb2a30b2d
-rw-r--r--src/arch/x86/isa/decoder/one_byte_opcodes.isa2
-rw-r--r--src/arch/x86/isa/insts/data_transfer/stack_operations.py7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
index c29133a5c..72fbf2896 100644
--- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
@@ -179,7 +179,7 @@
0x3: pop_rBX();
0x4: pop_rSP();
0x5: pop_rBP();
- 0x6: pop_rSI();
+ 0x6: Inst::POP(rSI);
0x7: pop_rDI();
}
0x0C: decode OPCODE_OP_BOTTOM3 {
diff --git a/src/arch/x86/isa/insts/data_transfer/stack_operations.py b/src/arch/x86/isa/insts/data_transfer/stack_operations.py
index bcde13982..3223d9b0f 100644
--- a/src/arch/x86/isa/insts/data_transfer/stack_operations.py
+++ b/src/arch/x86/isa/insts/data_transfer/stack_operations.py
@@ -53,7 +53,12 @@
#
# 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}"