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/x87/assembler-x87.h b/src/x87/assembler-x87.h
index 96eced9..eaf28e9 100644
--- a/src/x87/assembler-x87.h
+++ b/src/x87/assembler-x87.h
@@ -74,6 +74,8 @@
V(stX_6) \
V(stX_7)
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
#define ALLOCATABLE_DOUBLE_REGISTERS(V) \
V(stX_0) \
V(stX_1) \
@@ -145,8 +147,7 @@
#undef DECLARE_REGISTER
const Register no_reg = {Register::kCode_no_reg};
-
-struct DoubleRegister {
+struct X87Register {
enum Code {
#define REGISTER_CODE(R) kCode_##R,
DOUBLE_REGISTERS(REGISTER_CODE)
@@ -158,8 +159,8 @@
static const int kMaxNumRegisters = Code::kAfterLast;
static const int kMaxNumAllocatableRegisters = 6;
- static DoubleRegister from_code(int code) {
- DoubleRegister result = {code};
+ static X87Register from_code(int code) {
+ X87Register result = {code};
return result;
}
@@ -171,24 +172,26 @@
return reg_code;
}
- bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
+ bool is(X87Register reg) const { return reg_code == reg.reg_code; }
const char* ToString();
int reg_code;
};
+typedef X87Register FloatRegister;
+
+typedef X87Register DoubleRegister;
+
+// TODO(x87) Define SIMD registers.
+typedef X87Register Simd128Register;
+
#define DECLARE_REGISTER(R) \
const DoubleRegister R = {DoubleRegister::kCode_##R};
DOUBLE_REGISTERS(DECLARE_REGISTER)
#undef DECLARE_REGISTER
const DoubleRegister no_double_reg = {DoubleRegister::kCode_no_reg};
-typedef DoubleRegister X87Register;
-
-// TODO(x87) Define SIMD registers.
-typedef DoubleRegister Simd128Register;
-
enum Condition {
// any value < 0 is considered no_condition
no_condition = -1,
@@ -648,6 +651,8 @@
// Exchange
void xchg(Register dst, Register src);
void xchg(Register dst, const Operand& src);
+ void xchg_b(Register reg, const Operand& op);
+ void xchg_w(Register reg, const Operand& op);
// Arithmetics
void adc(Register dst, int32_t imm32);
@@ -958,7 +963,7 @@
// Record a deoptimization reason that can be used by a log or cpu profiler.
// Use --trace-deopt to enable.
- void RecordDeoptReason(const int reason, int raw_position);
+ void RecordDeoptReason(const int reason, int raw_position, int id);
// Writes a single byte or word of data in the code stream. Used for
// inline tables, e.g., jump-tables.