| Index: runtime/vm/intermediate_language_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_ia32.cc (revision 36643)
|
| +++ runtime/vm/intermediate_language_ia32.cc (working copy)
|
| @@ -107,7 +107,8 @@
|
| const intptr_t stack_index = (local().index() < 0)
|
| ? kFirstLocalSlotFromFp - local().index()
|
| : kParamEndSlotFromFp - local().index();
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::StackSlot(stack_index),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -122,7 +123,8 @@
|
| LocationSummary* StoreLocalInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::SameAsFirstInput(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -139,7 +141,8 @@
|
| LocationSummary* ConstantInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -833,7 +836,8 @@
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| // TODO(fschneider): Allow immediate operands for the char code.
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -854,7 +858,8 @@
|
| LocationSummary* StringToCharCodeInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -907,7 +912,8 @@
|
| LocationSummary* LoadUntaggedInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -923,7 +929,8 @@
|
| LocationSummary* LoadClassIdInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -1799,7 +1806,7 @@
|
| __ Bind(entry_label());
|
| const Code& stub =
|
| Code::Handle(StubCode::GetAllocationStubForClass(cls_));
|
| - const ExternalLabel label(cls_.ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
|
|
| LocationSummary* locs = instruction_->locs();
|
| locs->live_registers()->Remove(locs->out(0));
|
| @@ -2288,7 +2295,7 @@
|
| const Class& double_class = compiler->double_class();
|
| const Code& stub =
|
| Code::Handle(StubCode::GetAllocationStubForClass(double_class));
|
| - const ExternalLabel label(double_class.ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
|
|
| LocationSummary* locs = instruction_->locs();
|
| locs->live_registers()->Remove(locs->out(0));
|
| @@ -2320,7 +2327,7 @@
|
| const Class& float32x4_class = compiler->float32x4_class();
|
| const Code& stub =
|
| Code::Handle(StubCode::GetAllocationStubForClass(float32x4_class));
|
| - const ExternalLabel label(float32x4_class.ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
|
|
| LocationSummary* locs = instruction_->locs();
|
| locs->live_registers()->Remove(locs->out(0));
|
| @@ -2352,7 +2359,7 @@
|
| const Class& float64x2_class = compiler->float64x2_class();
|
| const Code& stub =
|
| Code::Handle(StubCode::GetAllocationStubForClass(float64x2_class));
|
| - const ExternalLabel label(float64x2_class.ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
|
|
| LocationSummary* locs = instruction_->locs();
|
| locs->live_registers()->Remove(locs->out(0));
|
| @@ -2660,8 +2667,7 @@
|
| compiler->SaveLiveRegisters(locs);
|
|
|
| __ movl(EDX, Immediate(instruction_->num_context_variables()));
|
| - const ExternalLabel label("alloc_context",
|
| - StubCode::AllocateContextEntryPoint());
|
| + const ExternalLabel label(StubCode::AllocateContextEntryPoint());
|
| compiler->GenerateCall(instruction_->token_pos(),
|
| &label,
|
| PcDescriptors::kOther,
|
| @@ -2751,8 +2757,7 @@
|
| ASSERT(locs()->out(0).reg() == EAX);
|
|
|
| __ movl(EDX, Immediate(num_context_variables()));
|
| - const ExternalLabel label("alloc_context",
|
| - StubCode::AllocateContextEntryPoint());
|
| + const ExternalLabel label(StubCode::AllocateContextEntryPoint());
|
| compiler->GenerateCall(token_pos(),
|
| &label,
|
| PcDescriptors::kOther,
|
| @@ -3696,7 +3701,7 @@
|
| const Class& int32x4_class = compiler->int32x4_class();
|
| const Code& stub =
|
| Code::Handle(StubCode::GetAllocationStubForClass(int32x4_class));
|
| - const ExternalLabel label(int32x4_class.ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
|
|
| LocationSummary* locs = instruction_->locs();
|
| locs->live_registers()->Remove(locs->out(0));
|
| @@ -4927,7 +4932,8 @@
|
| LocationSummary* UnarySmiOpInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::SameAsFirstInput(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -5770,7 +5776,7 @@
|
| Class::ZoneHandle(Isolate::Current()->object_store()->mint_class());
|
| const Code& stub =
|
| Code::Handle(StubCode::GetAllocationStubForClass(mint_class));
|
| - const ExternalLabel label(mint_class.ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
|
|
| LocationSummary* locs = instruction_->locs();
|
| locs->live_registers()->Remove(locs->out(0));
|
| @@ -6133,7 +6139,8 @@
|
|
|
| LocationSummary* CurrentContextInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(0,
|
| + return LocationSummary::Make(isolate,
|
| + 0,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -6342,7 +6349,8 @@
|
|
|
| LocationSummary* BooleanNegateInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(1,
|
| + return LocationSummary::Make(isolate,
|
| + 1,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -6369,7 +6377,7 @@
|
|
|
| void AllocateObjectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Code& stub = Code::Handle(StubCode::GetAllocationStubForClass(cls()));
|
| - const ExternalLabel label(cls().ToCString(), stub.EntryPoint());
|
| + const ExternalLabel label(stub.EntryPoint());
|
| compiler->GenerateCall(token_pos(),
|
| &label,
|
| PcDescriptors::kOther,
|
|
|