Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index 0f0545355c161a47651dad3dc9b5933b9f062d7d..569d2954d7ea8cffd8911123cfa53d421d550c89 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -411,9 +411,9 @@ LChunk::LChunk(CompilationInfo* info, HGraph* graph) |
: spill_slot_count_(0), |
info_(info), |
graph_(graph), |
- instructions_(32), |
- pointer_maps_(8), |
- inlined_closures_(1) { |
+ instructions_(32, graph->zone()), |
+ pointer_maps_(8, graph->zone()), |
+ inlined_closures_(1, graph->zone()) { |
} |
@@ -427,9 +427,9 @@ int LChunk::GetNextSpillIndex(bool is_double) { |
LOperand* LChunk::GetNextSpillSlot(bool is_double) { |
int index = GetNextSpillIndex(is_double); |
if (is_double) { |
- return LDoubleStackSlot::Create(index); |
+ return LDoubleStackSlot::Create(index, zone()); |
} else { |
- return LStackSlot::Create(index); |
+ return LStackSlot::Create(index, zone()); |
} |
} |
@@ -474,23 +474,23 @@ void LChunk::AddInstruction(LInstruction* instr, HBasicBlock* block) { |
LInstructionGap* gap = new(graph_->zone()) LInstructionGap(block); |
int index = -1; |
if (instr->IsControl()) { |
- instructions_.Add(gap); |
+ instructions_.Add(gap, zone()); |
index = instructions_.length(); |
- instructions_.Add(instr); |
+ instructions_.Add(instr, zone()); |
} else { |
index = instructions_.length(); |
- instructions_.Add(instr); |
- instructions_.Add(gap); |
+ instructions_.Add(instr, zone()); |
+ instructions_.Add(gap, zone()); |
} |
if (instr->HasPointerMap()) { |
- pointer_maps_.Add(instr->pointer_map()); |
+ pointer_maps_.Add(instr->pointer_map(), zone()); |
instr->pointer_map()->set_lithium_position(index); |
} |
} |
LConstantOperand* LChunk::DefineConstantOperand(HConstant* constant) { |
- return LConstantOperand::Create(constant->id()); |
+ return LConstantOperand::Create(constant->id(), zone()); |
} |
@@ -529,7 +529,8 @@ int LChunk::NearestGapPos(int index) const { |
void LChunk::AddGapMove(int index, LOperand* from, LOperand* to) { |
- GetGapAt(index)->GetOrCreateParallelMove(LGap::START)->AddMove(from, to); |
+ GetGapAt(index)->GetOrCreateParallelMove( |
+ LGap::START, zone())->AddMove(from, to, zone()); |
} |
@@ -762,7 +763,7 @@ LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr, |
LInstruction* LChunkBuilder::AssignPointerMap(LInstruction* instr) { |
ASSERT(!instr->HasPointerMap()); |
- instr->set_pointer_map(new(zone()) LPointerMap(position_)); |
+ instr->set_pointer_map(new(zone()) LPointerMap(position_, zone())); |
return instr; |
} |
@@ -1345,7 +1346,8 @@ HValue* LChunkBuilder::SimplifiedDivisorForMathFloorOfDiv(HValue* divisor) { |
HConstant* constant_val = HConstant::cast(divisor); |
int32_t int32_val = constant_val->Integer32Value(); |
if (LChunkBuilder::HasMagicNumberForDivisor(int32_val)) { |
- return constant_val->CopyToRepresentation(Representation::Integer32()); |
+ return constant_val->CopyToRepresentation(Representation::Integer32(), |
+ divisor->block()->zone()); |
} |
} |
return NULL; |
@@ -1361,7 +1363,7 @@ LInstruction* LChunkBuilder::DoMathFloorOfDiv(HMathFloorOfDiv* instr) { |
HConstant::cast(right)->HasInteger32Value() && |
HasMagicNumberForDivisor(HConstant::cast(right)->Integer32Value())); |
return AssignEnvironment(DefineAsRegister( |
- new LMathFloorOfDiv(dividend, divisor, remainder))); |
+ new(zone()) LMathFloorOfDiv(dividend, divisor, remainder))); |
} |
@@ -1658,7 +1660,8 @@ LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) { |
LInstruction* LChunkBuilder::DoDateField(HDateField* instr) { |
LOperand* object = UseFixed(instr->value(), r0); |
- LDateField* result = new LDateField(object, FixedTemp(r1), instr->index()); |
+ LDateField* result = |
+ new(zone()) LDateField(object, FixedTemp(r1), instr->index()); |
return MarkAsCall(DefineFixed(result, r0), instr); |
} |
@@ -2170,7 +2173,8 @@ LInstruction* LChunkBuilder::DoStringLength(HStringLength* instr) { |
LInstruction* LChunkBuilder::DoAllocateObject(HAllocateObject* instr) { |
- LAllocateObject* result = new LAllocateObject(TempRegister(), TempRegister()); |
+ LAllocateObject* result = |
+ new(zone()) LAllocateObject(TempRegister(), TempRegister()); |
return AssignPointerMap(DefineAsRegister(result)); |
} |