| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 1d87c6adb6f50baa9527a27d18204c40a9371f07..8f10008e88d933cf82c2beb77947f7b33510bffb 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -639,7 +639,7 @@ void LCodeGen::RegisterEnvironmentForDeoptimization(LEnvironment* environment,
|
| environment->Register(deoptimization_index,
|
| translation.index(),
|
| (mode == Safepoint::kLazyDeopt) ? pc_offset : -1);
|
| - deoptimizations_.Add(environment);
|
| + deoptimizations_.Add(environment, zone());
|
| }
|
| }
|
|
|
| @@ -671,7 +671,7 @@ void LCodeGen::DeoptimizeIf(Condition cc, LEnvironment* environment) {
|
| // jump entry if this is the case.
|
| if (deopt_jump_table_.is_empty() ||
|
| (deopt_jump_table_.last().address != entry)) {
|
| - deopt_jump_table_.Add(JumpTableEntry(entry));
|
| + deopt_jump_table_.Add(JumpTableEntry(entry), zone());
|
| }
|
| __ b(cc, &deopt_jump_table_.last().label);
|
| }
|
| @@ -716,7 +716,7 @@ int LCodeGen::DefineDeoptimizationLiteral(Handle<Object> literal) {
|
| for (int i = 0; i < deoptimization_literals_.length(); ++i) {
|
| if (deoptimization_literals_[i].is_identical_to(literal)) return i;
|
| }
|
| - deoptimization_literals_.Add(literal);
|
| + deoptimization_literals_.Add(literal, zone());
|
| return result;
|
| }
|
|
|
| @@ -764,12 +764,12 @@ void LCodeGen::RecordSafepoint(
|
| if (pointer->IsStackSlot()) {
|
| safepoint.DefinePointerSlot(pointer->index(), zone());
|
| } else if (pointer->IsRegister() && (kind & Safepoint::kWithRegisters)) {
|
| - safepoint.DefinePointerRegister(ToRegister(pointer));
|
| + safepoint.DefinePointerRegister(ToRegister(pointer), zone());
|
| }
|
| }
|
| if (kind & Safepoint::kWithRegisters) {
|
| // Register cp always contains a pointer to the context.
|
| - safepoint.DefinePointerRegister(cp);
|
| + safepoint.DefinePointerRegister(cp, zone());
|
| }
|
| }
|
|
|
| @@ -781,7 +781,7 @@ void LCodeGen::RecordSafepoint(LPointerMap* pointers,
|
|
|
|
|
| void LCodeGen::RecordSafepoint(Safepoint::DeoptMode deopt_mode) {
|
| - LPointerMap empty_pointers(RelocInfo::kNoPosition);
|
| + LPointerMap empty_pointers(RelocInfo::kNoPosition, zone());
|
| RecordSafepoint(&empty_pointers, deopt_mode);
|
| }
|
|
|
| @@ -1191,7 +1191,7 @@ void LCodeGen::DoDivI(LDivI* instr) {
|
|
|
| // Call the stub. The numbers in r0 and r1 have
|
| // to be tagged to Smis. If that is not possible, deoptimize.
|
| - DeferredDivI* deferred = new DeferredDivI(this, instr);
|
| + DeferredDivI* deferred = new(zone()) DeferredDivI(this, instr);
|
|
|
| __ TrySmiTag(left, &deoptimize, scratch);
|
| __ TrySmiTag(right, &deoptimize, scratch);
|
| @@ -2297,7 +2297,7 @@ void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) {
|
| };
|
|
|
| DeferredInstanceOfKnownGlobal* deferred;
|
| - deferred = new DeferredInstanceOfKnownGlobal(this, instr);
|
| + deferred = new(zone()) DeferredInstanceOfKnownGlobal(this, instr);
|
|
|
| Label done, false_result;
|
| Register object = ToRegister(instr->InputAt(0));
|
| @@ -3258,7 +3258,7 @@ void LCodeGen::DoMathAbs(LUnaryMathOperation* instr) {
|
| } else {
|
| // Representation is tagged.
|
| DeferredMathAbsTaggedHeapNumber* deferred =
|
| - new DeferredMathAbsTaggedHeapNumber(this, instr);
|
| + new(zone()) DeferredMathAbsTaggedHeapNumber(this, instr);
|
| Register input = ToRegister(instr->InputAt(0));
|
| // Smi check.
|
| __ JumpIfNotSmi(input, deferred->entry());
|
| @@ -3435,7 +3435,7 @@ void LCodeGen::DoRandom(LRandom* instr) {
|
| LRandom* instr_;
|
| };
|
|
|
| - DeferredDoRandom* deferred = new DeferredDoRandom(this, instr);
|
| + DeferredDoRandom* deferred = new(zone()) DeferredDoRandom(this, instr);
|
|
|
| // Having marked this instruction as a call we can use any
|
| // registers.
|
| @@ -3980,7 +3980,7 @@ void LCodeGen::DoStringCharCodeAt(LStringCharCodeAt* instr) {
|
| };
|
|
|
| DeferredStringCharCodeAt* deferred =
|
| - new DeferredStringCharCodeAt(this, instr);
|
| + new(zone()) DeferredStringCharCodeAt(this, instr);
|
|
|
| StringCharLoadGenerator::Generate(masm(),
|
| ToRegister(instr->string()),
|
| @@ -4035,7 +4035,7 @@ void LCodeGen::DoStringCharFromCode(LStringCharFromCode* instr) {
|
| };
|
|
|
| DeferredStringCharFromCode* deferred =
|
| - new DeferredStringCharFromCode(this, instr);
|
| + new(zone()) DeferredStringCharFromCode(this, instr);
|
|
|
| ASSERT(instr->hydrogen()->value()->representation().IsInteger32());
|
| Register char_code = ToRegister(instr->char_code());
|
| @@ -4109,7 +4109,7 @@ void LCodeGen::DoNumberTagI(LNumberTagI* instr) {
|
| Register src = ToRegister(instr->InputAt(0));
|
| Register dst = ToRegister(instr->result());
|
|
|
| - DeferredNumberTagI* deferred = new DeferredNumberTagI(this, instr);
|
| + DeferredNumberTagI* deferred = new(zone()) DeferredNumberTagI(this, instr);
|
| __ SmiTag(dst, src, SetCC);
|
| __ b(vs, deferred->entry());
|
| __ bind(deferred->exit());
|
| @@ -4180,7 +4180,7 @@ void LCodeGen::DoNumberTagD(LNumberTagD* instr) {
|
| Register temp1 = ToRegister(instr->TempAt(0));
|
| Register temp2 = ToRegister(instr->TempAt(1));
|
|
|
| - DeferredNumberTagD* deferred = new DeferredNumberTagD(this, instr);
|
| + DeferredNumberTagD* deferred = new(zone()) DeferredNumberTagD(this, instr);
|
| if (FLAG_inline_new) {
|
| __ LoadRoot(scratch, Heap::kHeapNumberMapRootIndex);
|
| __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry());
|
| @@ -4382,7 +4382,7 @@ void LCodeGen::DoTaggedToI(LTaggedToI* instr) {
|
|
|
| Register input_reg = ToRegister(input);
|
|
|
| - DeferredTaggedToI* deferred = new DeferredTaggedToI(this, instr);
|
| + DeferredTaggedToI* deferred = new(zone()) DeferredTaggedToI(this, instr);
|
|
|
| // Optimistically untag the input.
|
| // If the input is a HeapObject, SmiUntag will set the carry flag.
|
| @@ -4642,7 +4642,8 @@ void LCodeGen::DoAllocateObject(LAllocateObject* instr) {
|
| LAllocateObject* instr_;
|
| };
|
|
|
| - DeferredAllocateObject* deferred = new DeferredAllocateObject(this, instr);
|
| + DeferredAllocateObject* deferred =
|
| + new(zone()) DeferredAllocateObject(this, instr);
|
|
|
| Register result = ToRegister(instr->result());
|
| Register scratch = ToRegister(instr->TempAt(0));
|
| @@ -5246,7 +5247,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {
|
| ASSERT(instr->hydrogen()->is_backwards_branch());
|
| // Perform stack overflow check if this goto needs it before jumping.
|
| DeferredStackCheck* deferred_stack_check =
|
| - new DeferredStackCheck(this, instr);
|
| + new(zone()) DeferredStackCheck(this, instr);
|
| __ LoadRoot(ip, Heap::kStackLimitRootIndex);
|
| __ cmp(sp, Operand(ip));
|
| __ b(lo, deferred_stack_check->entry());
|
|
|