| Index: runtime/vm/stub_code_x64.cc
|
| ===================================================================
|
| --- runtime/vm/stub_code_x64.cc (revision 18992)
|
| +++ runtime/vm/stub_code_x64.cc (working copy)
|
| @@ -668,28 +668,25 @@
|
| AssemblerMacros::EnterStubFrame(assembler);
|
|
|
| __ pushq(raw_null); // Setup space on stack for result from call.
|
| - __ pushq(R13); // Non-closure object.
|
| __ pushq(R10); // Arguments descriptor.
|
| // Load smi-tagged arguments array length, including the non-closure.
|
| __ movq(R10, FieldAddress(R10, ArgumentsDescriptor::count_offset()));
|
| - // See stack layout below explaining "wordSize * 6" offset.
|
| - PushArgumentsArray(assembler, (kWordSize * 6));
|
| + // See stack layout below explaining "wordSize * 5" offset.
|
| + PushArgumentsArray(assembler, (kWordSize * 5));
|
|
|
| // Stack:
|
| // TOS + 0: Argument array.
|
| // TOS + 1: Arguments descriptor array.
|
| - // TOS + 2: Non-closure object.
|
| - // TOS + 3: Place for result from the call.
|
| - // TOS + 4: PC marker => RawInstruction object.
|
| - // TOS + 5: Saved RBP of previous frame. <== RBP
|
| - // TOS + 6: Dart code return address
|
| - // TOS + 7: Last argument of caller.
|
| + // TOS + 2: Place for result from the call.
|
| + // TOS + 3: PC marker => RawInstruction object.
|
| + // TOS + 4: Saved RBP of previous frame. <== RBP
|
| + // TOS + 5: Dart code return address
|
| + // TOS + 6: Last argument of caller.
|
| // ....
|
| __ CallRuntime(kInvokeNonClosureRuntimeEntry);
|
| // Remove arguments.
|
| __ popq(RAX);
|
| __ popq(RAX);
|
| - __ popq(RAX);
|
| __ popq(RAX); // Get result into RAX.
|
|
|
| // Remove the stub frame as we are about to return.
|
|
|