Index: src/arm/virtual-frame-arm.cc |
=================================================================== |
--- src/arm/virtual-frame-arm.cc (revision 2780) |
+++ src/arm/virtual-frame-arm.cc (working copy) |
@@ -141,10 +141,24 @@ |
Adjust(count); |
// Initialize stack slots with 'undefined' value. |
__ LoadRoot(ip, Heap::kUndefinedValueRootIndex); |
- for (int i = 0; i < count; i++) { |
- __ push(ip); |
- } |
} |
+ if (FLAG_check_stack) { |
+ __ LoadRoot(r2, Heap::kStackLimitRootIndex); |
+ } |
+ for (int i = 0; i < count; i++) { |
+ __ push(ip); |
+ } |
+ if (FLAG_check_stack) { |
+ masm()->add(lr, pc, Operand(4)); |
+ masm()->cmp(sp, Operand(r2)); |
+ StackCheckStub stub; |
+ // Call the stub if lower. |
+ masm()->mov(pc, |
+ Operand(reinterpret_cast<intptr_t>(stub.GetCode().location()), |
+ RelocInfo::CODE_TARGET), |
+ LeaveCC, |
+ lo); |
+ } |
} |