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()); |