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 = |