| OLD | NEW |
| 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 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 __ movl(EAX, Address(ESP, EAX, TIMES_2, 2 * kWordSize)); | 441 __ movl(EAX, Address(ESP, EAX, TIMES_2, 2 * kWordSize)); |
| 442 // Preserve IC data and arguments descriptor. | 442 // Preserve IC data and arguments descriptor. |
| 443 __ pushl(ECX); | 443 __ pushl(ECX); |
| 444 __ pushl(EDX); | 444 __ pushl(EDX); |
| 445 | 445 |
| 446 const Immediate& raw_null = | 446 const Immediate& raw_null = |
| 447 Immediate(reinterpret_cast<intptr_t>(Instructions::null())); | 447 Immediate(reinterpret_cast<intptr_t>(Instructions::null())); |
| 448 __ pushl(raw_null); // Space for the result of the runtime call. | 448 __ pushl(raw_null); // Space for the result of the runtime call. |
| 449 __ pushl(EAX); // Pass receiver. | 449 __ pushl(EAX); // Pass receiver. |
| 450 __ pushl(ECX); // Pass IC data. | 450 __ pushl(ECX); // Pass IC data. |
| 451 __ pushl(EDX); // Pass rguments descriptor. | 451 __ pushl(EDX); // Pass arguments descriptor. |
| 452 __ CallRuntime(kMegamorphicCacheMissHandlerRuntimeEntry); | 452 __ CallRuntime(kMegamorphicCacheMissHandlerRuntimeEntry); |
| 453 // Discard arguments. | 453 // Discard arguments. |
| 454 __ popl(EAX); | 454 __ popl(EAX); |
| 455 __ popl(EAX); | 455 __ popl(EAX); |
| 456 __ popl(EAX); | 456 __ popl(EAX); |
| 457 __ popl(EAX); // Return value from the runtime call (instructions). | 457 __ popl(EAX); // Return value from the runtime call (instructions). |
| 458 __ popl(EDX); // Restore arguments descriptor. | 458 __ popl(EDX); // Restore arguments descriptor. |
| 459 __ popl(ECX); // Restore IC data. | 459 __ popl(ECX); // Restore IC data. |
| 460 __ LeaveFrame(); | 460 __ LeaveFrame(); |
| 461 | 461 |
| (...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2147 __ Bind(&done); | 2147 __ Bind(&done); |
| 2148 __ popl(temp); | 2148 __ popl(temp); |
| 2149 __ popl(right); | 2149 __ popl(right); |
| 2150 __ popl(left); | 2150 __ popl(left); |
| 2151 __ ret(); | 2151 __ ret(); |
| 2152 } | 2152 } |
| 2153 | 2153 |
| 2154 } // namespace dart | 2154 } // namespace dart |
| 2155 | 2155 |
| 2156 #endif // defined TARGET_ARCH_IA32 | 2156 #endif // defined TARGET_ARCH_IA32 |
| OLD | NEW |