| 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);
|
| + }
|
| }
|
|
|
|
|
|
|