summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/isa/decoder')
-rw-r--r--src/arch/x86/isa/decoder/two_byte_opcodes.isa12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
index 294509df3..fb3add4ac 100644
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
@@ -762,8 +762,16 @@
default: Inst::UD2();
}
default: decode MODRM_REG {
- 0x0: fxsave();
- 0x1: fxrstor();
+ 0x0: decode OPSIZE {
+ 4: Inst::FXSAVE(M);
+ 8: Inst::FXSAVE64(M);
+ default: fxsave();
+ }
+ 0x1: decode OPSIZE {
+ 4: Inst::FXRSTOR(M);
+ 8: Inst::FXRSTOR64(M);
+ default: fxrstor();
+ }
0x2: Inst::LDMXCSR(Md);
0x3: Inst::STMXCSR(Md);
0x4: xsave();