| Index: runtime/vm/intermediate_language_x64.cc
|
| diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
|
| index 930ace149f1a5932f7b5b079eedd06f45c075df2..c403dae9b3f96a0908e8ed68d007fb91a1e0a86c 100644
|
| --- a/runtime/vm/intermediate_language_x64.cc
|
| +++ b/runtime/vm/intermediate_language_x64.cc
|
| @@ -910,11 +910,12 @@ LocationSummary* StringInterpolateInstr::MakeLocationSummary(Zone* zone,
|
| void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register array = locs()->in(0).reg();
|
| __ pushq(array);
|
| + const int kTypeArgsLen = 0;
|
| const int kNumberOfArguments = 1;
|
| const Array& kNoArgumentNames = Object::null_array();
|
| + ArgumentsInfo args_info(kTypeArgsLen, kNumberOfArguments, kNoArgumentNames);
|
| compiler->GenerateStaticCall(deopt_id(), token_pos(), CallFunction(),
|
| - kNumberOfArguments, kNoArgumentNames, locs(),
|
| - ICData::Handle());
|
| + args_info, locs(), ICData::Handle());
|
| ASSERT(locs()->out(0).reg() == RAX);
|
| }
|
|
|
| @@ -5325,17 +5326,17 @@ void DoubleToIntegerInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ SmiTag(result);
|
| __ jmp(&done);
|
| __ Bind(&do_call);
|
| + __ pushq(value_obj);
|
| ASSERT(instance_call()->HasICData());
|
| const ICData& ic_data = *instance_call()->ic_data();
|
| ASSERT(ic_data.NumberOfChecksIs(1));
|
| const Function& target = Function::ZoneHandle(ic_data.GetTargetAt(0));
|
| -
|
| - const intptr_t kNumberOfArguments = 1;
|
| - __ pushq(value_obj);
|
| + const int kTypeArgsLen = 0;
|
| + const int kNumberOfArguments = 1;
|
| + const Array& kNoArgumentNames = Object::null_array();
|
| + ArgumentsInfo args_info(kTypeArgsLen, kNumberOfArguments, kNoArgumentNames);
|
| compiler->GenerateStaticCall(deopt_id(), instance_call()->token_pos(), target,
|
| - kNumberOfArguments,
|
| - Object::null_array(), // No argument names.
|
| - locs(), ICData::Handle());
|
| + args_info, locs(), ICData::Handle());
|
| __ Bind(&done);
|
| }
|
|
|
| @@ -6691,9 +6692,9 @@ LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone,
|
|
|
| void ClosureCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // Arguments descriptor is expected in R10.
|
| - intptr_t argument_count = ArgumentCount();
|
| - const Array& arguments_descriptor = Array::ZoneHandle(
|
| - ArgumentsDescriptor::New(argument_count, argument_names()));
|
| + const intptr_t argument_count = ArgumentCount(); // Includes type args.
|
| + const Array& arguments_descriptor =
|
| + Array::ZoneHandle(Z, GetArgumentsDescriptor());
|
| __ LoadObject(R10, arguments_descriptor);
|
|
|
| // Function in RAX.
|
|
|