| 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.
|
|
|