From 5e572e462215ae46a0a1d547c2c36830acac8518 Mon Sep 17 00:00:00 2001 From: "kaznacheev@chromium.org" Date: Thu, 23 Sep 2010 19:01:56 +0000 Subject: [PATCH] Support dec_b instruction in ia32 and x64 disassembler. Review URL: http://codereview.chromium.org/3412028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ia32/disasm-ia32.cc | 6 +++--- src/x64/disasm-x64.cc | 6 +++--- test/cctest/test-disasm-ia32.cc | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ia32/disasm-ia32.cc b/src/ia32/disasm-ia32.cc index 207648b..d499ab2 100644 --- a/src/ia32/disasm-ia32.cc +++ b/src/ia32/disasm-ia32.cc @@ -1194,12 +1194,12 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector out_buffer, { data++; int mod, regop, rm; get_modrm(*data, &mod, ®op, &rm); - if (mod == 3 && regop == ecx) { - AppendToBuffer("dec_b %s", NameOfCPURegister(rm)); + if (regop == ecx) { + AppendToBuffer("dec_b "); + data += PrintRightOperand(data); } else { UnimplementedInstruction(); } - data++; } break; diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc index 7c9dfc1..26fe39e 100644 --- a/src/x64/disasm-x64.cc +++ b/src/x64/disasm-x64.cc @@ -1450,12 +1450,12 @@ int DisassemblerX64::InstructionDecode(v8::internal::Vector out_buffer, data++; int mod, regop, rm; get_modrm(*data, &mod, ®op, &rm); - if (mod == 3 && regop == 1) { - AppendToBuffer("decb %s", NameOfCPURegister(rm)); + if (regop == 1) { + AppendToBuffer("decb "); + data += PrintRightOperand(data); } else { UnimplementedInstruction(); } - data++; } break; diff --git a/test/cctest/test-disasm-ia32.cc b/test/cctest/test-disasm-ia32.cc index 71735bc..18bc435 100644 --- a/test/cctest/test-disasm-ia32.cc +++ b/test/cctest/test-disasm-ia32.cc @@ -165,6 +165,8 @@ TEST(DisasmIa320) { __ mov(Operand(ebx, ecx, times_4, 10000), edx); __ nop(); __ dec_b(edx); + __ dec_b(Operand(eax, 10)); + __ dec_b(Operand(ebx, ecx, times_4, 10000)); __ dec(edx); __ cdq(); -- 2.7.4