OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_X87 | 7 #if V8_TARGET_ARCH_X87 |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 2222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2233 | 2233 |
2234 // Enter the exit frame that transitions from JavaScript to C++. | 2234 // Enter the exit frame that transitions from JavaScript to C++. |
2235 __ EnterExitFrame(); | 2235 __ EnterExitFrame(); |
2236 | 2236 |
2237 // ebx: pointer to C function (C callee-saved) | 2237 // ebx: pointer to C function (C callee-saved) |
2238 // ebp: frame pointer (restored after C call) | 2238 // ebp: frame pointer (restored after C call) |
2239 // esp: stack pointer (restored after C call) | 2239 // esp: stack pointer (restored after C call) |
2240 // edi: number of arguments including receiver (C callee-saved) | 2240 // edi: number of arguments including receiver (C callee-saved) |
2241 // esi: pointer to the first argument (C callee-saved) | 2241 // esi: pointer to the first argument (C callee-saved) |
2242 | 2242 |
2243 // Result returned in eax, or eax+edx if result_size_ is 2. | 2243 // Result returned in eax, or eax+edx if result size is 2. |
2244 | 2244 |
2245 // Check stack alignment. | 2245 // Check stack alignment. |
2246 if (FLAG_debug_code) { | 2246 if (FLAG_debug_code) { |
2247 __ CheckStackAlignment(); | 2247 __ CheckStackAlignment(); |
2248 } | 2248 } |
2249 | 2249 |
2250 // Call C function. | 2250 // Call C function. |
2251 __ mov(Operand(esp, 0 * kPointerSize), edi); // argc. | 2251 __ mov(Operand(esp, 0 * kPointerSize), edi); // argc. |
2252 __ mov(Operand(esp, 1 * kPointerSize), esi); // argv. | 2252 __ mov(Operand(esp, 1 * kPointerSize), esi); // argv. |
2253 __ mov(Operand(esp, 2 * kPointerSize), | 2253 __ mov(Operand(esp, 2 * kPointerSize), |
(...skipping 2391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4645 Operand(ebp, 7 * kPointerSize), | 4645 Operand(ebp, 7 * kPointerSize), |
4646 NULL); | 4646 NULL); |
4647 } | 4647 } |
4648 | 4648 |
4649 | 4649 |
4650 #undef __ | 4650 #undef __ |
4651 | 4651 |
4652 } } // namespace v8::internal | 4652 } } // namespace v8::internal |
4653 | 4653 |
4654 #endif // V8_TARGET_ARCH_X87 | 4654 #endif // V8_TARGET_ARCH_X87 |
OLD | NEW |