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

Unified Diff: runtime/vm/disassembler_x64.cc

Issue 867383002: Implement bitLength intrinsic on x64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 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: 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, &regop, &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:

Powered by Google App Engine
This is Rietveld 408576698