diff options
Diffstat (limited to 'deps/v8/src/compiler/mips64/code-generator-mips64.cc')
-rw-r--r-- | deps/v8/src/compiler/mips64/code-generator-mips64.cc | 354 |
1 files changed, 223 insertions, 131 deletions
diff --git a/deps/v8/src/compiler/mips64/code-generator-mips64.cc b/deps/v8/src/compiler/mips64/code-generator-mips64.cc index 7beb887b53..0e2b508a29 100644 --- a/deps/v8/src/compiler/mips64/code-generator-mips64.cc +++ b/deps/v8/src/compiler/mips64/code-generator-mips64.cc @@ -87,6 +87,9 @@ class MipsOperandConverter final : public InstructionOperandConverter { // TODO(plind): Maybe we should handle ExtRef & HeapObj here? // maybe not done on arm due to const pool ?? break; + case Constant::kDelayedStringConstant: + return Operand::EmbeddedStringConstant( + constant.ToDelayedStringConstant()); case Constant::kRpoNumber: UNREACHABLE(); // TODO(titzer): RPO immediates on mips? break; @@ -349,116 +352,120 @@ void EmitWordLoadPoisoningIfNeeded(CodeGenerator* codegen, __ sync(); \ } while (0) -#define ASSEMBLE_ATOMIC_BINOP(bin_instr) \ - do { \ - Label binop; \ - __ Daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ - __ sync(); \ - __ bind(&binop); \ - __ Ll(i.OutputRegister(0), MemOperand(i.TempRegister(0), 0)); \ - __ bin_instr(i.TempRegister(1), i.OutputRegister(0), \ - Operand(i.InputRegister(2))); \ - __ Sc(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&binop, eq, i.TempRegister(1), Operand(zero_reg)); \ - __ sync(); \ +#define ASSEMBLE_ATOMIC_BINOP(load_linked, store_conditional, bin_instr) \ + do { \ + Label binop; \ + __ Daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ + __ sync(); \ + __ bind(&binop); \ + __ load_linked(i.OutputRegister(0), MemOperand(i.TempRegister(0), 0)); \ + __ bin_instr(i.TempRegister(1), i.OutputRegister(0), \ + Operand(i.InputRegister(2))); \ + __ store_conditional(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&binop, eq, i.TempRegister(1), Operand(zero_reg)); \ + __ sync(); \ } while (0) -#define ASSEMBLE_ATOMIC_BINOP_EXT(sign_extend, size, bin_instr) \ - do { \ - Label binop; \ - __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ - __ andi(i.TempRegister(3), i.TempRegister(0), 0x3); \ - __ Dsubu(i.TempRegister(0), i.TempRegister(0), \ - Operand(i.TempRegister(3))); \ - __ sll(i.TempRegister(3), i.TempRegister(3), 3); \ - __ sync(); \ - __ bind(&binop); \ - __ Ll(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ - __ ExtractBits(i.OutputRegister(0), i.TempRegister(1), i.TempRegister(3), \ - size, sign_extend); \ - __ bin_instr(i.TempRegister(2), i.OutputRegister(0), \ - Operand(i.InputRegister(2))); \ - __ InsertBits(i.TempRegister(1), i.TempRegister(2), i.TempRegister(3), \ - size); \ - __ Sc(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&binop, eq, i.TempRegister(1), Operand(zero_reg)); \ - __ sync(); \ +#define ASSEMBLE_ATOMIC_BINOP_EXT(load_linked, store_conditional, sign_extend, \ + size, bin_instr) \ + do { \ + Label binop; \ + __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ + __ andi(i.TempRegister(3), i.TempRegister(0), 0x3); \ + __ Dsubu(i.TempRegister(0), i.TempRegister(0), \ + Operand(i.TempRegister(3))); \ + __ sll(i.TempRegister(3), i.TempRegister(3), 3); \ + __ sync(); \ + __ bind(&binop); \ + __ load_linked(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ + __ ExtractBits(i.OutputRegister(0), i.TempRegister(1), i.TempRegister(3), \ + size, sign_extend); \ + __ bin_instr(i.TempRegister(2), i.OutputRegister(0), \ + Operand(i.InputRegister(2))); \ + __ InsertBits(i.TempRegister(1), i.TempRegister(2), i.TempRegister(3), \ + size); \ + __ store_conditional(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&binop, eq, i.TempRegister(1), Operand(zero_reg)); \ + __ sync(); \ } while (0) -#define ASSEMBLE_ATOMIC_EXCHANGE_INTEGER() \ - do { \ - Label exchange; \ - __ sync(); \ - __ bind(&exchange); \ - __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ - __ Ll(i.OutputRegister(0), MemOperand(i.TempRegister(0), 0)); \ - __ mov(i.TempRegister(1), i.InputRegister(2)); \ - __ Sc(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&exchange, eq, i.TempRegister(1), Operand(zero_reg)); \ - __ sync(); \ +#define ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(load_linked, store_conditional) \ + do { \ + Label exchange; \ + __ sync(); \ + __ bind(&exchange); \ + __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ + __ load_linked(i.OutputRegister(0), MemOperand(i.TempRegister(0), 0)); \ + __ mov(i.TempRegister(1), i.InputRegister(2)); \ + __ store_conditional(i.TempRegister(1), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&exchange, eq, i.TempRegister(1), Operand(zero_reg)); \ + __ sync(); \ } while (0) -#define ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(sign_extend, size) \ - do { \ - Label exchange; \ - __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ - __ andi(i.TempRegister(1), i.TempRegister(0), 0x3); \ - __ Dsubu(i.TempRegister(0), i.TempRegister(0), \ - Operand(i.TempRegister(1))); \ - __ sll(i.TempRegister(1), i.TempRegister(1), 3); \ - __ sync(); \ - __ bind(&exchange); \ - __ Ll(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ - __ ExtractBits(i.OutputRegister(0), i.TempRegister(2), i.TempRegister(1), \ - size, sign_extend); \ - __ InsertBits(i.TempRegister(2), i.InputRegister(2), i.TempRegister(1), \ - size); \ - __ Sc(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&exchange, eq, i.TempRegister(2), Operand(zero_reg)); \ - __ sync(); \ +#define ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(load_linked, store_conditional, \ + sign_extend, size) \ + do { \ + Label exchange; \ + __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ + __ andi(i.TempRegister(1), i.TempRegister(0), 0x3); \ + __ Dsubu(i.TempRegister(0), i.TempRegister(0), \ + Operand(i.TempRegister(1))); \ + __ sll(i.TempRegister(1), i.TempRegister(1), 3); \ + __ sync(); \ + __ bind(&exchange); \ + __ load_linked(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ + __ ExtractBits(i.OutputRegister(0), i.TempRegister(2), i.TempRegister(1), \ + size, sign_extend); \ + __ InsertBits(i.TempRegister(2), i.InputRegister(2), i.TempRegister(1), \ + size); \ + __ store_conditional(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&exchange, eq, i.TempRegister(2), Operand(zero_reg)); \ + __ sync(); \ } while (0) -#define ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER() \ - do { \ - Label compareExchange; \ - Label exit; \ - __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ - __ sync(); \ - __ bind(&compareExchange); \ - __ Ll(i.OutputRegister(0), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&exit, ne, i.InputRegister(2), \ - Operand(i.OutputRegister(0))); \ - __ mov(i.TempRegister(2), i.InputRegister(3)); \ - __ Sc(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&compareExchange, eq, i.TempRegister(2), \ - Operand(zero_reg)); \ - __ bind(&exit); \ - __ sync(); \ +#define ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(load_linked, \ + store_conditional) \ + do { \ + Label compareExchange; \ + Label exit; \ + __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ + __ sync(); \ + __ bind(&compareExchange); \ + __ load_linked(i.OutputRegister(0), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&exit, ne, i.InputRegister(2), \ + Operand(i.OutputRegister(0))); \ + __ mov(i.TempRegister(2), i.InputRegister(3)); \ + __ store_conditional(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&compareExchange, eq, i.TempRegister(2), \ + Operand(zero_reg)); \ + __ bind(&exit); \ + __ sync(); \ } while (0) -#define ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(sign_extend, size) \ - do { \ - Label compareExchange; \ - Label exit; \ - __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ - __ andi(i.TempRegister(1), i.TempRegister(0), 0x3); \ - __ Dsubu(i.TempRegister(0), i.TempRegister(0), \ - Operand(i.TempRegister(1))); \ - __ sll(i.TempRegister(1), i.TempRegister(1), 3); \ - __ sync(); \ - __ bind(&compareExchange); \ - __ Ll(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ - __ ExtractBits(i.OutputRegister(0), i.TempRegister(2), i.TempRegister(1), \ - size, sign_extend); \ - __ BranchShort(&exit, ne, i.InputRegister(2), \ - Operand(i.OutputRegister(0))); \ - __ InsertBits(i.TempRegister(2), i.InputRegister(3), i.TempRegister(1), \ - size); \ - __ Sc(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ - __ BranchShort(&compareExchange, eq, i.TempRegister(2), \ - Operand(zero_reg)); \ - __ bind(&exit); \ - __ sync(); \ +#define ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT( \ + load_linked, store_conditional, sign_extend, size) \ + do { \ + Label compareExchange; \ + Label exit; \ + __ daddu(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \ + __ andi(i.TempRegister(1), i.TempRegister(0), 0x3); \ + __ Dsubu(i.TempRegister(0), i.TempRegister(0), \ + Operand(i.TempRegister(1))); \ + __ sll(i.TempRegister(1), i.TempRegister(1), 3); \ + __ sync(); \ + __ bind(&compareExchange); \ + __ load_linked(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ + __ ExtractBits(i.OutputRegister(0), i.TempRegister(2), i.TempRegister(1), \ + size, sign_extend); \ + __ BranchShort(&exit, ne, i.InputRegister(2), \ + Operand(i.OutputRegister(0))); \ + __ InsertBits(i.TempRegister(2), i.InputRegister(3), i.TempRegister(1), \ + size); \ + __ store_conditional(i.TempRegister(2), MemOperand(i.TempRegister(0), 0)); \ + __ BranchShort(&compareExchange, eq, i.TempRegister(2), \ + Operand(zero_reg)); \ + __ bind(&exit); \ + __ sync(); \ } while (0) #define ASSEMBLE_IEEE754_BINOP(name) \ @@ -1845,6 +1852,18 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( case kWord32AtomicLoadWord32: ASSEMBLE_ATOMIC_LOAD_INTEGER(Lw); break; + case kMips64Word64AtomicLoadUint8: + ASSEMBLE_ATOMIC_LOAD_INTEGER(Lbu); + break; + case kMips64Word64AtomicLoadUint16: + ASSEMBLE_ATOMIC_LOAD_INTEGER(Lhu); + break; + case kMips64Word64AtomicLoadUint32: + ASSEMBLE_ATOMIC_LOAD_INTEGER(Lwu); + break; + case kMips64Word64AtomicLoadUint64: + ASSEMBLE_ATOMIC_LOAD_INTEGER(Ld); + break; case kWord32AtomicStoreWord8: ASSEMBLE_ATOMIC_STORE_INTEGER(Sb); break; @@ -1854,52 +1873,88 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( case kWord32AtomicStoreWord32: ASSEMBLE_ATOMIC_STORE_INTEGER(Sw); break; + case kMips64Word64AtomicStoreWord8: + ASSEMBLE_ATOMIC_STORE_INTEGER(Sb); + break; + case kMips64Word64AtomicStoreWord16: + ASSEMBLE_ATOMIC_STORE_INTEGER(Sh); + break; + case kMips64Word64AtomicStoreWord32: + ASSEMBLE_ATOMIC_STORE_INTEGER(Sw); + break; + case kMips64Word64AtomicStoreWord64: + ASSEMBLE_ATOMIC_STORE_INTEGER(Sd); + break; case kWord32AtomicExchangeInt8: - ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(true, 8); + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Ll, Sc, true, 8); break; case kWord32AtomicExchangeUint8: - ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(false, 8); + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Ll, Sc, false, 8); break; case kWord32AtomicExchangeInt16: - ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(true, 16); + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Ll, Sc, true, 16); break; case kWord32AtomicExchangeUint16: - ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(false, 16); + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Ll, Sc, false, 16); break; case kWord32AtomicExchangeWord32: - ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(); + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(Ll, Sc); + break; + case kMips64Word64AtomicExchangeUint8: + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Lld, Scd, false, 8); + break; + case kMips64Word64AtomicExchangeUint16: + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Lld, Scd, false, 16); + break; + case kMips64Word64AtomicExchangeUint32: + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT(Lld, Scd, false, 32); + break; + case kMips64Word64AtomicExchangeUint64: + ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(Lld, Scd); break; case kWord32AtomicCompareExchangeInt8: - ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(true, 8); + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Ll, Sc, true, 8); break; case kWord32AtomicCompareExchangeUint8: - ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(false, 8); + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Ll, Sc, false, 8); break; case kWord32AtomicCompareExchangeInt16: - ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(true, 16); + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Ll, Sc, true, 16); break; case kWord32AtomicCompareExchangeUint16: - ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(false, 16); + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Ll, Sc, false, 16); break; case kWord32AtomicCompareExchangeWord32: __ sll(i.InputRegister(2), i.InputRegister(2), 0); - ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(); - break; -#define ATOMIC_BINOP_CASE(op, inst) \ - case kWord32Atomic##op##Int8: \ - ASSEMBLE_ATOMIC_BINOP_EXT(true, 8, inst); \ - break; \ - case kWord32Atomic##op##Uint8: \ - ASSEMBLE_ATOMIC_BINOP_EXT(false, 8, inst); \ - break; \ - case kWord32Atomic##op##Int16: \ - ASSEMBLE_ATOMIC_BINOP_EXT(true, 16, inst); \ - break; \ - case kWord32Atomic##op##Uint16: \ - ASSEMBLE_ATOMIC_BINOP_EXT(false, 16, inst); \ - break; \ - case kWord32Atomic##op##Word32: \ - ASSEMBLE_ATOMIC_BINOP(inst); \ + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(Ll, Sc); + break; + case kMips64Word64AtomicCompareExchangeUint8: + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Lld, Scd, false, 8); + break; + case kMips64Word64AtomicCompareExchangeUint16: + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Lld, Scd, false, 16); + break; + case kMips64Word64AtomicCompareExchangeUint32: + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT(Lld, Scd, false, 32); + break; + case kMips64Word64AtomicCompareExchangeUint64: + ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(Lld, Scd); + break; +#define ATOMIC_BINOP_CASE(op, inst) \ + case kWord32Atomic##op##Int8: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Ll, Sc, true, 8, inst); \ + break; \ + case kWord32Atomic##op##Uint8: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Ll, Sc, false, 8, inst); \ + break; \ + case kWord32Atomic##op##Int16: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Ll, Sc, true, 16, inst); \ + break; \ + case kWord32Atomic##op##Uint16: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Ll, Sc, false, 16, inst); \ + break; \ + case kWord32Atomic##op##Word32: \ + ASSEMBLE_ATOMIC_BINOP(Ll, Sc, inst); \ break; ATOMIC_BINOP_CASE(Add, Addu) ATOMIC_BINOP_CASE(Sub, Subu) @@ -1907,6 +1962,25 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( ATOMIC_BINOP_CASE(Or, Or) ATOMIC_BINOP_CASE(Xor, Xor) #undef ATOMIC_BINOP_CASE +#define ATOMIC_BINOP_CASE(op, inst) \ + case kMips64Word64Atomic##op##Uint8: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Lld, Scd, false, 8, inst); \ + break; \ + case kMips64Word64Atomic##op##Uint16: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Lld, Scd, false, 16, inst); \ + break; \ + case kMips64Word64Atomic##op##Uint32: \ + ASSEMBLE_ATOMIC_BINOP_EXT(Lld, Scd, false, 32, inst); \ + break; \ + case kMips64Word64Atomic##op##Uint64: \ + ASSEMBLE_ATOMIC_BINOP(Lld, Scd, inst); \ + break; + ATOMIC_BINOP_CASE(Add, Daddu) + ATOMIC_BINOP_CASE(Sub, Dsubu) + ATOMIC_BINOP_CASE(And, And) + ATOMIC_BINOP_CASE(Or, Or) + ATOMIC_BINOP_CASE(Xor, Xor) +#undef ATOMIC_BINOP_CASE case kMips64AssertEqual: __ Assert(eq, static_cast<AbortReason>(i.InputOperand(2).immediate()), i.InputRegister(0), Operand(i.InputRegister(1))); @@ -2496,7 +2570,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( Label all_false; __ BranchMSA(&all_false, MSA_BRANCH_V, all_zero, i.InputSimd128Register(0), USE_DELAY_SLOT); - __ li(dst, 0); // branch delay slot + __ li(dst, 0l); // branch delay slot __ li(dst, -1); __ bind(&all_false); break; @@ -2508,7 +2582,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( __ BranchMSA(&all_true, MSA_BRANCH_W, all_not_zero, i.InputSimd128Register(0), USE_DELAY_SLOT); __ li(dst, -1); // branch delay slot - __ li(dst, 0); + __ li(dst, 0l); __ bind(&all_true); break; } @@ -2519,7 +2593,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( __ BranchMSA(&all_true, MSA_BRANCH_H, all_not_zero, i.InputSimd128Register(0), USE_DELAY_SLOT); __ li(dst, -1); // branch delay slot - __ li(dst, 0); + __ li(dst, 0l); __ bind(&all_true); break; } @@ -2530,7 +2604,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( __ BranchMSA(&all_true, MSA_BRANCH_B, all_not_zero, i.InputSimd128Register(0), USE_DELAY_SLOT); __ li(dst, -1); // branch delay slot - __ li(dst, 0); + __ li(dst, 0l); __ bind(&all_true); break; } @@ -3174,6 +3248,8 @@ void CodeGenerator::AssembleBranchPoisoning(FlagsCondition condition, } } +#undef UNSUPPORTED_COND + void CodeGenerator::AssembleArchDeoptBranch(Instruction* instr, BranchInfo* branch) { AssembleArchBranch(instr, branch); @@ -3621,9 +3697,12 @@ void CodeGenerator::AssembleMove(InstructionOperand* source, case Constant::kExternalReference: __ li(dst, src.ToExternalReference()); break; + case Constant::kDelayedStringConstant: + __ li(dst, src.ToDelayedStringConstant()); + break; case Constant::kHeapObject: { Handle<HeapObject> src_object = src.ToHeapObject(); - Heap::RootListIndex index; + RootIndex index; if (IsMaterializableFromRoot(src_object, &index)) { __ LoadRoot(dst, index); } else { @@ -3823,6 +3902,19 @@ void CodeGenerator::AssembleJumpTable(Label** targets, size_t target_count) { UNREACHABLE(); } +#undef ASSEMBLE_ATOMIC_LOAD_INTEGER +#undef ASSEMBLE_ATOMIC_STORE_INTEGER +#undef ASSEMBLE_ATOMIC_BINOP +#undef ASSEMBLE_ATOMIC_BINOP_EXT +#undef ASSEMBLE_ATOMIC_EXCHANGE_INTEGER +#undef ASSEMBLE_ATOMIC_EXCHANGE_INTEGER_EXT +#undef ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER +#undef ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER_EXT +#undef ASSEMBLE_IEEE754_BINOP +#undef ASSEMBLE_IEEE754_UNOP + +#undef TRACE_MSG +#undef TRACE_UNIMPL #undef __ } // namespace compiler |