Index: src/arm/jump-target-arm.cc |
=================================================================== |
--- src/arm/jump-target-arm.cc (revision 4770) |
+++ src/arm/jump-target-arm.cc (working copy) |
@@ -50,6 +50,11 @@ |
ASSERT(cgen()->HasValidEntryRegisters()); |
if (entry_frame_set_) { |
+ if (entry_label_.is_bound()) { |
+ // If we already bound and generated code at the destination then it |
+ // is too late to ask for less optimistic type assumptions. |
+ ASSERT(entry_frame_.IsCompatibleWith(cgen()->frame())); |
+ } |
// There already a frame expectation at the target. |
cgen()->frame()->MergeTo(&entry_frame_); |
cgen()->DeleteFrame(); |
@@ -67,8 +72,12 @@ |
ASSERT(cgen()->has_valid_frame()); |
if (entry_frame_set_) { |
- // Backward branch. We have an expected frame to merge to on the |
- // backward edge. |
+ if (entry_label_.is_bound()) { |
+ // If we already bound and generated code at the destination then it |
+ // is too late to ask for less optimistic type assumptions. |
+ ASSERT(entry_frame_.IsCompatibleWith(cgen()->frame())); |
+ } |
+ // We have an expected frame to merge to on the backward edge. |
cgen()->frame()->MergeTo(&entry_frame_, cc); |
} else { |
// Clone the current frame to use as the expected one at the target. |