Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc
index a9532dc..7126b89 100644
--- a/src/x64/disasm-x64.cc
+++ b/src/x64/disasm-x64.cc
@@ -8,6 +8,7 @@
#if V8_TARGET_ARCH_X64
+#include "src/base/compiler-specific.h"
#include "src/base/lazy-instance.h"
#include "src/disasm.h"
@@ -359,7 +360,7 @@
bool vex_128() {
DCHECK(vex_byte0_ == VEX3_PREFIX || vex_byte0_ == VEX2_PREFIX);
byte checked = vex_byte0_ == VEX3_PREFIX ? vex_byte2_ : vex_byte1_;
- return (checked & 4) != 1;
+ return (checked & 4) == 0;
}
bool vex_none() {
@@ -479,7 +480,7 @@
int MemoryFPUInstruction(int escape_opcode, int regop, byte* modrm_start);
int RegisterFPUInstruction(int escape_opcode, byte modrm_byte);
int AVXInstruction(byte* data);
- void AppendToBuffer(const char* format, ...);
+ PRINTF_FORMAT(2, 3) void AppendToBuffer(const char* format, ...);
void UnimplementedInstruction() {
if (abort_on_unimplemented_) {
@@ -618,7 +619,7 @@
value = 0; // Initialize variables on all paths to satisfy the compiler.
count = 0;
}
- AppendToBuffer("%" V8_PTR_PREFIX "x", value);
+ AppendToBuffer("%" PRIx64, value);
return count;
}
@@ -1999,7 +2000,7 @@
if (rex_w()) AppendToBuffer("REX.W ");
AppendToBuffer("%s%c", idesc.mnem, operand_size_code());
} else {
- AppendToBuffer("%s", idesc.mnem, operand_size_code());
+ AppendToBuffer("%s%c", idesc.mnem, operand_size_code());
}
data++;
break;
@@ -2141,9 +2142,11 @@
default:
mnem = "???";
}
- AppendToBuffer(((regop <= 1) ? "%s%c " : "%s "),
- mnem,
- operand_size_code());
+ if (regop <= 1) {
+ AppendToBuffer("%s%c ", mnem, operand_size_code());
+ } else {
+ AppendToBuffer("%s ", mnem);
+ }
data += PrintRightOperand(data);
}
break;
@@ -2334,9 +2337,7 @@
default:
UNREACHABLE();
}
- AppendToBuffer("test%c rax,0x%" V8_PTR_PREFIX "x",
- operand_size_code(),
- value);
+ AppendToBuffer("test%c rax,0x%" PRIx64, operand_size_code(), value);
break;
}
case 0xD1: // fall through