| Index: runtime/vm/intermediate_language_x64.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_x64.cc (revision 36643)
|
| +++ runtime/vm/intermediate_language_x64.cc (working copy)
|
| @@ -189,7 +189,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);
|
| }
|
| @@ -204,7 +205,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);
|
| }
|
| @@ -221,7 +223,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);
|
| }
|
| @@ -762,7 +765,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);
|
| }
|
| @@ -783,7 +787,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);
|
| }
|
| @@ -836,7 +841,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);
|
| }
|
| @@ -852,7 +858,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);
|
| }
|
| @@ -1649,7 +1656,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));
|
| @@ -2132,7 +2139,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));
|
| @@ -2164,7 +2171,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));
|
| @@ -2196,7 +2203,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));
|
| @@ -2482,8 +2489,7 @@
|
| ASSERT(locs()->out(0).reg() == RAX);
|
|
|
| __ LoadImmediate(R10, Immediate(num_context_variables()), PP);
|
| - const ExternalLabel label("alloc_context",
|
| - StubCode::AllocateContextEntryPoint());
|
| + const ExternalLabel label(StubCode::AllocateContextEntryPoint());
|
| compiler->GenerateCall(token_pos(),
|
| &label,
|
| PcDescriptors::kOther,
|
| @@ -3419,7 +3425,8 @@
|
| LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresFpuRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -3526,7 +3533,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));
|
| @@ -4679,7 +4686,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);
|
| }
|
| @@ -5733,7 +5741,8 @@
|
|
|
| LocationSummary* CurrentContextInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(0,
|
| + return LocationSummary::Make(isolate,
|
| + 0,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -5879,7 +5888,8 @@
|
|
|
| LocationSummary* BooleanNegateInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(1,
|
| + return LocationSummary::Make(isolate,
|
| + 1,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -5906,7 +5916,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,
|
|
|