| Index: runtime/vm/intermediate_language_arm64.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_arm64.cc (revision 36643)
|
| +++ runtime/vm/intermediate_language_arm64.cc (working copy)
|
| @@ -238,7 +238,8 @@
|
|
|
| LocationSummary* LoadLocalInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(0,
|
| + return LocationSummary::Make(isolate,
|
| + 0,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -252,7 +253,8 @@
|
|
|
| LocationSummary* StoreLocalInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(1,
|
| + return LocationSummary::Make(isolate,
|
| + 1,
|
| Location::SameAsFirstInput(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -268,7 +270,8 @@
|
|
|
| LocationSummary* ConstantInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(0,
|
| + return LocationSummary::Make(isolate,
|
| + 0,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -286,7 +289,8 @@
|
| LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| - return LocationSummary::Make(kNumInputs,
|
| + return LocationSummary::Make(isolate,
|
| + kNumInputs,
|
| Location::RequiresFpuRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -801,7 +805,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);
|
| }
|
| @@ -822,7 +827,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);
|
| }
|
| @@ -871,7 +877,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);
|
| }
|
| @@ -887,7 +894,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);
|
| }
|
| @@ -1690,7 +1698,7 @@
|
|
|
| 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));
|
| @@ -2058,7 +2066,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));
|
| @@ -2090,7 +2098,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));
|
| @@ -2122,7 +2130,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));
|
| @@ -2400,8 +2408,7 @@
|
| ASSERT(locs()->out(0).reg() == R0);
|
|
|
| __ LoadImmediate(R1, num_context_variables(), PP);
|
| - const ExternalLabel label("alloc_context",
|
| - StubCode::AllocateContextEntryPoint());
|
| + const ExternalLabel label(StubCode::AllocateContextEntryPoint());
|
| compiler->GenerateCall(token_pos(),
|
| &label,
|
| PcDescriptors::kOther,
|
| @@ -3274,7 +3281,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));
|
| @@ -5154,7 +5161,8 @@
|
|
|
| LocationSummary* CurrentContextInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(0,
|
| + return LocationSummary::Make(isolate,
|
| + 0,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -5248,7 +5256,8 @@
|
|
|
| LocationSummary* BooleanNegateInstr::MakeLocationSummary(Isolate* isolate,
|
| bool opt) const {
|
| - return LocationSummary::Make(1,
|
| + return LocationSummary::Make(isolate,
|
| + 1,
|
| Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
| @@ -5273,7 +5282,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,
|
|
|