| Index: runtime/vm/intermediate_language_x64.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_x64.cc (revision 28731)
|
| +++ runtime/vm/intermediate_language_x64.cc (working copy)
|
| @@ -960,6 +960,32 @@
|
| }
|
|
|
|
|
| +LocationSummary* StringInterpolateInstr::MakeLocationSummary() const {
|
| + const intptr_t kNumInputs = 1;
|
| + const intptr_t kNumTemps = 0;
|
| + LocationSummary* summary =
|
| + new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
|
| + summary->set_in(0, Location::RegisterLocation(RAX));
|
| + summary->set_out(Location::RegisterLocation(RAX));
|
| + return summary;
|
| +}
|
| +
|
| +
|
| +void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| + Register array = locs()->in(0).reg();
|
| + __ pushq(array);
|
| + const int kNumberOfArguments = 1;
|
| + const Array& kNoArgumentNames = Object::null_array();
|
| + compiler->GenerateStaticCall(deopt_id(),
|
| + token_pos(),
|
| + CallFunction(),
|
| + kNumberOfArguments,
|
| + kNoArgumentNames,
|
| + locs());
|
| + ASSERT(locs()->out().reg() == RAX);
|
| +}
|
| +
|
| +
|
| LocationSummary* LoadUntaggedInstr::MakeLocationSummary() const {
|
| const intptr_t kNumInputs = 1;
|
| return LocationSummary::Make(kNumInputs,
|
|
|