| Index: runtime/vm/disassembler_x64.cc
|
| ===================================================================
|
| --- runtime/vm/disassembler_x64.cc (revision 43118)
|
| +++ runtime/vm/disassembler_x64.cc (working copy)
|
| @@ -1522,17 +1522,17 @@
|
| // SETcc: Set byte on condition. Needs pointer to beginning of instruction.
|
| current = data + SetCC(data);
|
|
|
| - } else if ((opcode & 0xFE) == 0xA4 || (opcode & 0xFE) == 0xAC ||
|
| - opcode == 0xAB || opcode == 0xA3) {
|
| + } else if (((opcode & 0xFE) == 0xA4) || ((opcode & 0xFE) == 0xAC) ||
|
| + (opcode == 0xAB) || (opcode == 0xA3) || (opcode == 0xBD)) {
|
| // SHLD, SHRD (double-prec. shift), BTS (bit test and set), BT (bit test).
|
| AppendToBuffer("%s%c ", mnemonic, operand_size_code());
|
| int mod, regop, rm;
|
| get_modrm(*current, &mod, ®op, &rm);
|
| current += PrintRightOperand(current);
|
| AppendToBuffer(",%s", NameOfCPURegister(regop));
|
| - if (opcode == 0xAB || opcode == 0xA3) {
|
| + if ((opcode == 0xAB) || (opcode == 0xA3) || (opcode == 0xBD)) {
|
| // Done.
|
| - } else if (opcode == 0xA5 || opcode == 0xAD) {
|
| + } else if ((opcode == 0xA5) || (opcode == 0xAD)) {
|
| AppendToBuffer(",cl");
|
| } else {
|
| AppendToBuffer(",");
|
| @@ -1586,6 +1586,8 @@
|
| return "movzxw";
|
| case 0xBE:
|
| return "movsxb";
|
| + case 0xBD:
|
| + return "bsr";
|
| case 0xBF:
|
| return "movsxw";
|
| case 0x12:
|
|
|