Chromium Code Reviews| Index: src/builtins-ia32.cc |
| =================================================================== |
| --- src/builtins-ia32.cc (revision 380) |
| +++ src/builtins-ia32.cc (working copy) |
| @@ -517,21 +517,23 @@ |
| // Eagerly check for stack-overflow before pushing all the arguments |
| // to the stack. |
| - Label okay; |
| - __ lea(ecx, Operand(esp, -3 * kPointerSize)); // receiver, limit, index |
| - __ mov(edx, Operand(eax)); |
| - __ shl(edx, kPointerSizeLog2 - kSmiTagSize); |
| - __ sub(ecx, Operand(edx)); |
| - ExternalReference stack_guard_limit_address = |
| - ExternalReference::address_of_stack_guard_limit(); |
| - __ cmp(ecx, Operand::StaticVariable(stack_guard_limit_address)); |
| - __ j(greater, &okay, taken); |
| + if (true && FLAG_check_stack) { |
|
bak
2008/09/26 09:25:50
Please remove true &&. It does not add much.
Søren Thygesen Gjesse
2008/09/26 10:33:15
Sorry about that - testing leftover.
|
| + Label okay; |
| + __ lea(ecx, Operand(esp, -3 * kPointerSize)); // receiver, limit, index |
| + __ mov(edx, Operand(eax)); |
| + __ shl(edx, kPointerSizeLog2 - kSmiTagSize); |
| + __ sub(ecx, Operand(edx)); |
| + ExternalReference stack_guard_limit_address = |
| + ExternalReference::address_of_stack_guard_limit(); |
| + __ cmp(ecx, Operand::StaticVariable(stack_guard_limit_address)); |
| + __ j(above_equal, &okay, taken); |
| - // Too bad: Out of stack space. |
| - __ push(Operand(ebp, 4 * kPointerSize)); // push this |
| - __ push(eax); |
| - __ InvokeBuiltin(Builtins::APPLY_OVERFLOW, CALL_FUNCTION); |
| - __ bind(&okay); |
| + // Too bad: Out of stack space. |
| + __ push(Operand(ebp, 4 * kPointerSize)); // push this |
| + __ push(eax); |
| + __ InvokeBuiltin(Builtins::APPLY_OVERFLOW, CALL_FUNCTION); |
| + __ bind(&okay); |
| + } |
| // Push current index and limit. |
| const int kLimitOffset = |