Index: runtime/vm/intermediate_language_mips.cc |
=================================================================== |
--- runtime/vm/intermediate_language_mips.cc (revision 32017) |
+++ runtime/vm/intermediate_language_mips.cc (working copy) |
@@ -82,24 +82,18 @@ |
Register result = locs()->in(0).reg(); |
ASSERT(result == V0); |
#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()) { |
- Label stack_ok; |
- __ Comment("Stack Check"); |
- __ TraceSimMsg("Stack Check"); |
- const intptr_t fp_sp_dist = |
- (kFirstLocalSlotFromFp + 1 - compiler->StackSize()) * kWordSize; |
- ASSERT(fp_sp_dist <= 0); |
- __ subu(CMPRES1, SP, FP); |
+ Label stack_ok; |
+ __ Comment("Stack Check"); |
+ __ TraceSimMsg("Stack Check"); |
+ const intptr_t fp_sp_dist = |
+ (kFirstLocalSlotFromFp + 1 - compiler->StackSize()) * kWordSize; |
+ ASSERT(fp_sp_dist <= 0); |
+ __ subu(CMPRES1, SP, FP); |
- __ BranchEqual(CMPRES1, fp_sp_dist, &stack_ok); |
- __ break_(0); |
+ __ BranchEqual(CMPRES1, fp_sp_dist, &stack_ok); |
+ __ break_(0); |
- __ Bind(&stack_ok); |
- } |
+ __ Bind(&stack_ok); |
#endif |
__ LeaveDartFrameAndReturn(); |
} |