| Index: runtime/vm/intermediate_language_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_ia32.cc (revision 32017)
|
| +++ runtime/vm/intermediate_language_ia32.cc (working copy)
|
| @@ -78,23 +78,17 @@
|
| Register result = locs()->in(0).reg();
|
| ASSERT(result == EAX);
|
| #if defined(DEBUG)
|
| - // TODO(srdjan): Fix for functions with finally clause.
|
| - // A finally clause may leave a previously pushed return value if it
|
| - // has its own return instruction. Method that have finally are currently
|
| - // not optimized.
|
| - if (!compiler->HasFinally()) {
|
| - __ Comment("Stack Check");
|
| - Label done;
|
| - const intptr_t fp_sp_dist =
|
| - (kFirstLocalSlotFromFp + 1 - compiler->StackSize()) * kWordSize;
|
| - ASSERT(fp_sp_dist <= 0);
|
| - __ movl(EDI, ESP);
|
| - __ subl(EDI, EBP);
|
| - __ cmpl(EDI, Immediate(fp_sp_dist));
|
| - __ j(EQUAL, &done, Assembler::kNearJump);
|
| - __ int3();
|
| - __ Bind(&done);
|
| - }
|
| + __ Comment("Stack Check");
|
| + Label done;
|
| + const intptr_t fp_sp_dist =
|
| + (kFirstLocalSlotFromFp + 1 - compiler->StackSize()) * kWordSize;
|
| + ASSERT(fp_sp_dist <= 0);
|
| + __ movl(EDI, ESP);
|
| + __ subl(EDI, EBP);
|
| + __ cmpl(EDI, Immediate(fp_sp_dist));
|
| + __ j(EQUAL, &done, Assembler::kNearJump);
|
| + __ int3();
|
| + __ Bind(&done);
|
| #endif
|
| __ LeaveFrame();
|
| __ ret();
|
|
|