Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(820)

Unified Diff: src/ia32/disasm-ia32.cc

Issue 1584663007: [turbofan] Implement rounding of floats on x64 and ia32 without sse4.1. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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, &regop, &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;

Powered by Google App Engine
This is Rietveld 408576698