Chromium Code Reviews| Index: runtime/vm/stub_code_arm.cc |
| =================================================================== |
| --- runtime/vm/stub_code_arm.cc (revision 39693) |
| +++ runtime/vm/stub_code_arm.cc (working copy) |
| @@ -1155,7 +1155,6 @@ |
| // Input parameters: |
| // LR : return address. |
| // SP : address of last argument. |
| -// R5: inline cache data object. |
| // R4: arguments descriptor array. |
| void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { |
| __ EnterStubFrame(); |
| @@ -1170,14 +1169,15 @@ |
| // Push IC data object. |
|
Vyacheslav Egorov (Google)
2014/09/02 22:28:04
comment is obsolete, update
Florian Schneider
2014/09/03 09:05:00
Done.
|
| // Push arguments descriptor array. |
| __ LoadImmediate(IP, reinterpret_cast<intptr_t>(Object::null())); |
| - __ PushList((1 << R4) | (1 << R5) | (1 << R6) | (1 << IP)); |
| + __ PushList((1 << R4) | (1 << R6) | (1 << IP)); |
| // R2: Smi-tagged arguments array length. |
| PushArgumentsArray(assembler); |
| - __ CallRuntime(kInvokeNoSuchMethodFunctionRuntimeEntry, 4); |
| + const intptr_t kNumArgs = 3; |
|
Vyacheslav Egorov (Google)
2014/09/02 22:28:04
this 3 is related to the number of bits set in the
Florian Schneider
2014/09/03 09:05:00
It's a little tricky to generate the push-list - m
|
| + __ CallRuntime(kInvokeNoSuchMethodFunctionRuntimeEntry, kNumArgs); |
| // Remove arguments. |
| - __ Drop(4); |
| + __ Drop(kNumArgs); |
| __ Pop(R0); // Get result into R0. |
| __ LeaveStubFrame(); |
|
Vyacheslav Egorov (Google)
2014/09/02 22:28:04
something is off here: three things were pushed an
Florian Schneider
2014/09/03 09:05:00
I'm sure PushArgumentsArray is the missing piece h
|
| __ Ret(); |