diff options
Diffstat (limited to 'src/arch/x86/isa/decoder')
-rw-r--r-- | src/arch/x86/isa/decoder/two_byte_opcodes.isa | 12 |
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(); |