| Index: src/x64/lithium-x64.cc
|
| diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc
|
| index defdafa6748a27d149550dfe7fe338777876a2e6..e102803c094d04d6c27af7f70df3aac591e9d9e1 100644
|
| --- a/src/x64/lithium-x64.cc
|
| +++ b/src/x64/lithium-x64.cc
|
| @@ -44,10 +44,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;
|
| }
|
| }
|
| @@ -619,8 +619,6 @@ LInstruction* LChunkBuilder::AssignEnvironment(LInstruction* instr) {
|
| LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr,
|
| HInstruction* hinstr,
|
| CanDeoptimize can_deoptimize) {
|
| - info()->MarkAsNonDeferredCalling();
|
| -
|
| #ifdef DEBUG
|
| instr->VerifyCall();
|
| #endif
|
| @@ -1619,12 +1617,8 @@ LInstruction* LChunkBuilder::DoForceRepresentation(HForceRepresentation* bad) {
|
| LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| Representation from = instr->from();
|
| Representation to = instr->to();
|
| - // Only mark conversions that might need to allocate as calling rather than
|
| - // all changes. This makes simple, non-allocating conversion not have to force
|
| - // building a stack frame.
|
| if (from.IsTagged()) {
|
| if (to.IsDouble()) {
|
| - info()->MarkAsDeferredCalling();
|
| LOperand* value = UseRegister(instr->value());
|
| LNumberUntagD* res = new(zone()) LNumberUntagD(value);
|
| return AssignEnvironment(DefineAsRegister(res));
|
| @@ -1642,7 +1636,6 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| }
|
| } else if (from.IsDouble()) {
|
| if (to.IsTagged()) {
|
| - info()->MarkAsDeferredCalling();
|
| LOperand* value = UseRegister(instr->value());
|
| LOperand* temp = TempRegister();
|
|
|
| @@ -1656,7 +1649,6 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| return AssignEnvironment(DefineAsRegister(new(zone()) LDoubleToI(value)));
|
| }
|
| } else if (from.IsInteger32()) {
|
| - info()->MarkAsDeferredCalling();
|
| if (to.IsTagged()) {
|
| HValue* val = instr->value();
|
| LOperand* value = UseRegister(val);
|
| @@ -2123,17 +2115,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);
|
| }
|
|
|
|
|
| @@ -2229,7 +2212,6 @@ LInstruction* LChunkBuilder::DoSimulate(HSimulate* instr) {
|
|
|
|
|
| LInstruction* LChunkBuilder::DoStackCheck(HStackCheck* instr) {
|
| - info()->MarkAsDeferredCalling();
|
| if (instr->is_function_entry()) {
|
| return MarkAsCall(new(zone()) LStackCheck, instr);
|
| } else {
|
|
|