From 6f95c0b11bd5e3ffb5a8790e45afecc8c00e7c66 Mon Sep 17 00:00:00 2001 From: "yangguo@chromium.org" Date: Mon, 3 Feb 2014 08:13:12 +0000 Subject: [PATCH] [x64] add disasm for two fp instructions BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/146583002 Patch from Weiliang Lin . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/x64/disasm-x64.cc | 3 +++ test/cctest/test-disasm-ia32.cc | 2 ++ test/cctest/test-disasm-x64.cc | 2 ++ 3 files changed, 7 insertions(+) diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc index 76b541c..476eab2 100644 --- a/src/x64/disasm-x64.cc +++ b/src/x64/disasm-x64.cc @@ -934,6 +934,7 @@ int DisassemblerX64::RegisterFPUInstruction(int escape_opcode, case 0xF5: mnem = "fprem1"; break; case 0xF7: mnem = "fincstp"; break; case 0xF8: mnem = "fprem"; break; + case 0xFC: mnem = "frndint"; break; case 0xFD: mnem = "fscale"; break; case 0xFE: mnem = "fsin"; break; case 0xFF: mnem = "fcos"; break; @@ -956,6 +957,8 @@ int DisassemblerX64::RegisterFPUInstruction(int escape_opcode, has_register = true; } else if (modrm_byte == 0xE2) { mnem = "fclex"; + } else if (modrm_byte == 0xE3) { + mnem = "fninit"; } else { UnimplementedInstruction(); } diff --git a/test/cctest/test-disasm-ia32.cc b/test/cctest/test-disasm-ia32.cc index 722194d..f32a69c 100644 --- a/test/cctest/test-disasm-ia32.cc +++ b/test/cctest/test-disasm-ia32.cc @@ -349,6 +349,8 @@ TEST(DisasmIa320) { __ fdivp(3); __ fcompp(); __ fwait(); + __ frndint(); + __ fninit(); __ nop(); // SSE instruction diff --git a/test/cctest/test-disasm-x64.cc b/test/cctest/test-disasm-x64.cc index 8806764..9fce25f 100644 --- a/test/cctest/test-disasm-x64.cc +++ b/test/cctest/test-disasm-x64.cc @@ -330,6 +330,8 @@ TEST(DisasmX64) { __ fdivp(3); __ fcompp(); __ fwait(); + __ frndint(); + __ fninit(); __ nop(); // SSE instruction -- 2.7.4