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

Side by Side Diff: dart/runtime/vm/stub_code_ia32.cc

Issue 14049009: Rename Invocation to InvocationMirror. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged Created 7 years, 8 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 | « dart/runtime/vm/stack_frame_test.cc ('k') | dart/runtime/vm/stub_code_x64.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_IA32) 6 #if defined(TARGET_ARCH_IA32)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/dart_entry.h" 10 #include "vm/dart_entry.h"
(...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 // EBP - 4 : PC marker => RawInstruction object. 1338 // EBP - 4 : PC marker => RawInstruction object.
1339 // EBP : points to previous frame pointer. 1339 // EBP : points to previous frame pointer.
1340 // EBP + 4 : points to return address. 1340 // EBP + 4 : points to return address.
1341 // EBP + 8 : address of last argument (arg n-1). 1341 // EBP + 8 : address of last argument (arg n-1).
1342 // EBP + 8 + 4*(n-1) : address of first argument (arg 0). 1342 // EBP + 8 + 4*(n-1) : address of first argument (arg 0).
1343 // ECX : ic-data. 1343 // ECX : ic-data.
1344 // EDX : arguments descriptor array. 1344 // EDX : arguments descriptor array.
1345 // Uses EAX, EBX, EDI as temporary registers. 1345 // Uses EAX, EBX, EDI as temporary registers.
1346 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { 1346 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) {
1347 // The target function was not found, so invoke method 1347 // The target function was not found, so invoke method
1348 // "dynamic noSuchMethod(InvocationMirror invocation)". 1348 // "dynamic noSuchMethod(Invocation invocation)".
1349 const Immediate& raw_null = 1349 const Immediate& raw_null =
1350 Immediate(reinterpret_cast<intptr_t>(Object::null())); 1350 Immediate(reinterpret_cast<intptr_t>(Object::null()));
1351 __ movl(EDI, FieldAddress(EDX, ArgumentsDescriptor::count_offset())); 1351 __ movl(EDI, FieldAddress(EDX, ArgumentsDescriptor::count_offset()));
1352 __ movl(EAX, Address(EBP, EDI, TIMES_2, kWordSize)); // Get receiver. 1352 __ movl(EAX, Address(EBP, EDI, TIMES_2, kWordSize)); // Get receiver.
1353 1353
1354 // Create a stub frame as we are pushing some objects on the stack before 1354 // Create a stub frame as we are pushing some objects on the stack before
1355 // calling into the runtime. 1355 // calling into the runtime.
1356 __ EnterStubFrame(); 1356 __ EnterStubFrame();
1357 1357
1358 __ pushl(raw_null); // Setup space on stack for result from noSuchMethod. 1358 __ pushl(raw_null); // Setup space on stack for result from noSuchMethod.
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
2117 __ Bind(&done); 2117 __ Bind(&done);
2118 __ popl(temp); 2118 __ popl(temp);
2119 __ popl(right); 2119 __ popl(right);
2120 __ popl(left); 2120 __ popl(left);
2121 __ ret(); 2121 __ ret();
2122 } 2122 }
2123 2123
2124 } // namespace dart 2124 } // namespace dart
2125 2125
2126 #endif // defined TARGET_ARCH_IA32 2126 #endif // defined TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « dart/runtime/vm/stack_frame_test.cc ('k') | dart/runtime/vm/stub_code_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698