Index: src/ia32/disasm-ia32.cc |
diff --git a/src/ia32/disasm-ia32.cc b/src/ia32/disasm-ia32.cc |
index 935b22d9004ae14f48909146406a892c5f634b64..5a432806592f7c03903e66c99e629d8f87ab70f7 100644 |
--- a/src/ia32/disasm-ia32.cc |
+++ b/src/ia32/disasm-ia32.cc |
@@ -1231,6 +1231,8 @@ static const char* F0Mnem(byte f0byte) { |
case 0xAD: return "shrd"; |
case 0xAC: return "shrd"; // 3-operand version. |
case 0xAB: return "bts"; |
+ case 0xBC: |
+ return "bsf"; |
case 0xBD: return "bsr"; |
default: return NULL; |
} |
@@ -1482,6 +1484,12 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector<char> out_buffer, |
} else { |
AppendToBuffer(",%s,cl", NameOfCPURegister(regop)); |
} |
+ } else if (f0byte == 0xBC) { |
+ data += 2; |
+ int mod, regop, rm; |
+ get_modrm(*data, &mod, ®op, &rm); |
+ AppendToBuffer("%s %s,", f0mnem, NameOfCPURegister(regop)); |
+ data += PrintRightOperand(data); |
} else if (f0byte == 0xBD) { |
data += 2; |
int mod, regop, rm; |