summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-08-09 01:01:41 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-08-09 01:01:41 -0700
commitc5fae517748420efd346149641ed69f53747ee16 (patch)
tree3ca8395860eed8f99a18b713d7a4d1bff52ab09c /src/arch/x86/isa/decoder
parentbbf117b20e32ca827ee3b00b019d3a88f39f9cec (diff)
downloadgem5-c5fae517748420efd346149641ed69f53747ee16.tar.xz
X86: Implement the CMPXCHG8B/CMPXCHG16B instruction.
Diffstat (limited to 'src/arch/x86/isa/decoder')
-rw-r--r--src/arch/x86/isa/decoder/locked_opcodes.isa3
-rw-r--r--src/arch/x86/isa/decoder/two_byte_opcodes.isa3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/arch/x86/isa/decoder/locked_opcodes.isa b/src/arch/x86/isa/decoder/locked_opcodes.isa
index f38f2abb8..14d5e58a3 100644
--- a/src/arch/x86/isa/decoder/locked_opcodes.isa
+++ b/src/arch/x86/isa/decoder/locked_opcodes.isa
@@ -160,7 +160,8 @@
0x1: XADD_LOCKED(Mv,Gv);
//0x7: group9();
0x7: decode MODRM_REG {
- 0x1: WarnUnimpl::cmpxchg_Mq_LOCKED();
+ //Also CMPXCHG16B
+ 0x1: CMPXCHG8B_LOCKED(Mdp);
}
}
}
diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
index dbde17964..55056da81 100644
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
@@ -898,7 +898,8 @@
0x1: Inst::XADD(Ev,Gv);
//0x7: group9();
0x7: decode MODRM_REG {
- 0x1: cmpxchg_Mq();
+ //Also CMPXCHG16B
+ 0x1: Inst::CMPXCHG8B(Mdp);
0x6: decode LEGACY_OP {
0x1: vmclear_Mq();
default: decode LEGACY_REP {