Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index 400e1fc26dd6c99f921a5ceb630690f6617dd110..32dda278d8c546a31bcb859badaaed0d0bd14074 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -42,10 +42,10 @@ LITHIUM_CONCRETE_INSTRUCTION_LIST(DEFINE_COMPILE) |
#undef DEFINE_COMPILE |
LOsrEntry::LOsrEntry() { |
- for (int i = 0; i < Register::NumAllocatableRegisters(); ++i) { |
+ for (int i = 0; i < Register::kNumAllocatableRegisters; ++i) { |
register_spills_[i] = NULL; |
} |
- for (int i = 0; i < DoubleRegister::NumAllocatableRegisters(); ++i) { |
+ for (int i = 0; i < DoubleRegister::kNumAllocatableRegisters; ++i) { |
double_register_spills_[i] = NULL; |
} |
} |
@@ -612,7 +612,6 @@ LInstruction* LChunkBuilder::AssignEnvironment(LInstruction* instr) { |
LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr, |
HInstruction* hinstr, |
CanDeoptimize can_deoptimize) { |
- info()->MarkAsNonDeferredCalling(); |
#ifdef DEBUG |
instr->VerifyCall(); |
#endif |
@@ -1685,7 +1684,6 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
Representation to = instr->to(); |
if (from.IsTagged()) { |
if (to.IsDouble()) { |
- info()->MarkAsDeferredCalling(); |
LOperand* value = UseRegister(instr->value()); |
LNumberUntagD* res = new(zone()) LNumberUntagD(value); |
return AssignEnvironment(DefineAsRegister(res)); |
@@ -1710,7 +1708,6 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
} |
} else if (from.IsDouble()) { |
if (to.IsTagged()) { |
- info()->MarkAsDeferredCalling(); |
LOperand* value = UseRegister(instr->value()); |
LOperand* temp1 = TempRegister(); |
LOperand* temp2 = TempRegister(); |
@@ -1730,7 +1727,6 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
return AssignEnvironment(DefineAsRegister(res)); |
} |
} else if (from.IsInteger32()) { |
- info()->MarkAsDeferredCalling(); |
if (to.IsTagged()) { |
HValue* val = instr->value(); |
LOperand* value = UseRegisterAtStart(val); |
@@ -1968,16 +1964,7 @@ LInstruction* LChunkBuilder::DoLoadKeyed(HLoadKeyed* instr) { |
(instr->representation().IsDouble() && |
((elements_kind == EXTERNAL_FLOAT_ELEMENTS) || |
(elements_kind == EXTERNAL_DOUBLE_ELEMENTS)))); |
- // float->double conversion on non-VFP2 requires an extra scratch |
- // register. For convenience, just mark the elements register as "UseTemp" |
- // so that it can be used as a temp during the float->double conversion |
- // after it's no longer needed after the float load. |
- bool needs_temp = |
- !CpuFeatures::IsSupported(VFP2) && |
- (elements_kind == EXTERNAL_FLOAT_ELEMENTS); |
- LOperand* external_pointer = needs_temp |
- ? UseTempRegister(instr->elements()) |
- : UseRegister(instr->elements()); |
+ LOperand* external_pointer = UseRegister(instr->elements()); |
result = new(zone()) LLoadKeyed(external_pointer, key); |
} |
@@ -2195,17 +2182,8 @@ LInstruction* LChunkBuilder::DoOsrEntry(HOsrEntry* instr) { |
LInstruction* LChunkBuilder::DoParameter(HParameter* instr) { |
- LParameter* result = new(zone()) LParameter; |
- if (info()->IsOptimizing()) { |
- int spill_index = chunk()->GetParameterStackSlot(instr->index()); |
- return DefineAsSpilled(result, spill_index); |
- } else { |
- ASSERT(info()->IsStub()); |
- CodeStubInterfaceDescriptor* descriptor = |
- info()->code_stub()->GetInterfaceDescriptor(info()->isolate()); |
- Register reg = descriptor->register_params[instr->index()]; |
- return DefineFixed(result, reg); |
- } |
+ int spill_index = chunk()->GetParameterStackSlot(instr->index()); |
+ return DefineAsSpilled(new(zone()) LParameter, spill_index); |
} |