Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: runtime/vm/stub_code_arm.cc

Issue 17857008: Fix and simplify invocation of noSuchMethod on all platforms after the wrong (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.cc ('k') | runtime/vm/stub_code_ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_ARM) 6 #if defined(TARGET_ARCH_ARM)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/code_generator.h" 9 #include "vm/code_generator.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 1263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 } 1274 }
1275 __ Drop(1); // Pop function object. 1275 __ Drop(1); // Pop function object.
1276 __ Pop(R0); 1276 __ Pop(R0);
1277 // R0: new object 1277 // R0: new object
1278 // Restore the frame pointer. 1278 // Restore the frame pointer.
1279 __ LeaveStubFrame(true); 1279 __ LeaveStubFrame(true);
1280 __ Ret(); 1280 __ Ret();
1281 } 1281 }
1282 1282
1283 1283
1284 // The target function was not found, so invoke method 1284 // Called for invoking "dynamic noSuchMethod(Invocation invocation)" function
1285 // "dynamic noSuchMethod(Invocation invocation)". 1285 // from the entry code of a dart function after an error in passed argument
1286 // name or number is detected.
1287 // Input parameters:
1288 // LR : return address.
1289 // SP : address of last argument.
1286 // R5: inline cache data object. 1290 // R5: inline cache data object.
1287 // R4: arguments descriptor array. 1291 // R4: arguments descriptor array.
1288 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { 1292 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) {
1289 __ EnterStubFrame(); 1293 __ EnterStubFrame();
1290 1294
1291 // Load the receiver. 1295 // Load the receiver.
1292 __ ldr(R2, FieldAddress(R4, ArgumentsDescriptor::count_offset())); 1296 __ ldr(R2, FieldAddress(R4, ArgumentsDescriptor::count_offset()));
1293 __ add(IP, FP, ShifterOperand(R2, LSL, 1)); // R2 is Smi. 1297 __ add(IP, FP, ShifterOperand(R2, LSL, 1)); // R2 is Smi.
1294 __ ldr(R6, Address(IP, kParamEndSlotFromFp * kWordSize)); 1298 __ ldr(R6, Address(IP, kParamEndSlotFromFp * kWordSize));
1295 1299
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
2046 __ Bind(&reference_compare); 2050 __ Bind(&reference_compare);
2047 __ cmp(left, ShifterOperand(right)); 2051 __ cmp(left, ShifterOperand(right));
2048 __ Bind(&done); 2052 __ Bind(&done);
2049 __ PopList((1 << R0) | (1 << R1) | (1 << R2)); 2053 __ PopList((1 << R0) | (1 << R1) | (1 << R2));
2050 __ Ret(); 2054 __ Ret();
2051 } 2055 }
2052 2056
2053 } // namespace dart 2057 } // namespace dart
2054 2058
2055 #endif // defined TARGET_ARCH_ARM 2059 #endif // defined TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.cc ('k') | runtime/vm/stub_code_ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698