| Index: src/ia32/disasm-ia32.cc
|
| diff --git a/src/ia32/disasm-ia32.cc b/src/ia32/disasm-ia32.cc
|
| index 5a432806592f7c03903e66c99e629d8f87ab70f7..dc64887c8254efbd6e82350e582a55cd77601707 100644
|
| --- a/src/ia32/disasm-ia32.cc
|
| +++ b/src/ia32/disasm-ia32.cc
|
| @@ -1484,6 +1484,29 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector<char> out_buffer,
|
| } else {
|
| AppendToBuffer(",%s,cl", NameOfCPURegister(regop));
|
| }
|
| + } else if (f0byte == 0xAE) {
|
| + // ldmxcsr and stmxcsr
|
| + data += 2;
|
| + byte modrm = *data;
|
| + int mod, regop, rm;
|
| + get_modrm(modrm, &mod, ®op, &rm);
|
| + regop &= 0x7; // The REX.R bit does not affect the operation.
|
| + const char* mnem = NULL;
|
| + switch (regop) {
|
| + case 2:
|
| + mnem = "ldmxcsr";
|
| + break;
|
| + case 3:
|
| + mnem = "stmxcsr";
|
| + break;
|
| + default:
|
| + UnimplementedInstruction();
|
| + return 2;
|
| + }
|
| + DCHECK_NOT_NULL(mnem);
|
| + AppendToBuffer("%s ", mnem);
|
| + data += PrintRightOperandHelper(
|
| + data, &DisassemblerIA32::NameOfCPURegister);
|
| } else if (f0byte == 0xBC) {
|
| data += 2;
|
| int mod, regop, rm;
|
|
|