Index: src/arm/ic-arm.cc |
=================================================================== |
--- src/arm/ic-arm.cc (revision 4738) |
+++ src/arm/ic-arm.cc (working copy) |
@@ -579,7 +579,13 @@ |
} |
Address address_after_nop = address_after_call + Assembler::kInstrSize; |
Instr instr_after_nop = Assembler::instr_at(address_after_nop); |
- ASSERT(Assembler::IsBranch(instr_after_nop)); |
+ // There may be some reg-reg move and frame merging code to skip over before |
+ // the branch back from the DeferredReferenceGetKeyedValue code to the inlined |
+ // code. |
+ while (!Assembler::IsBranch(instr_after_nop)) { |
+ address_after_nop += Assembler::kInstrSize; |
+ instr_after_nop = Assembler::instr_at(address_after_nop); |
+ } |
// Find the end of the inlined code for handling the load. |
int b_offset = |