--- old/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp 2014-12-09 13:49:50.862767418 -0500 +++ new/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp 2014-12-09 13:49:50.542795757 -0500 @@ -97,11 +97,11 @@ } if (frame_size() == no_frame_size) { leave(); - b(RuntimeAddress(StubRoutines::forward_exception_entry())); + far_jump(RuntimeAddress(StubRoutines::forward_exception_entry())); } else if (_stub_id == Runtime1::forward_exception_id) { should_not_reach_here(); } else { - b(RuntimeAddress(Runtime1::entry_for(Runtime1::forward_exception_id))); + far_jump(RuntimeAddress(Runtime1::entry_for(Runtime1::forward_exception_id))); } bind(L); } @@ -580,7 +580,7 @@ { Label L1; __ cbnz(r0, L1); // have we deoptimized? - __ b(RuntimeAddress(Runtime1::entry_for(Runtime1::forward_exception_id))); + __ far_jump(RuntimeAddress(Runtime1::entry_for(Runtime1::forward_exception_id))); __ bind(L1); } @@ -624,7 +624,7 @@ // registers and must leave throwing pc on the stack. A patch may // have values live in registers so the entry point with the // exception in tls. - __ b(RuntimeAddress(deopt_blob->unpack_with_exception_in_tls())); + __ far_jump(RuntimeAddress(deopt_blob->unpack_with_exception_in_tls())); __ bind(L); } @@ -641,7 +641,7 @@ // registers, pop all of our frame but the return address and jump to the deopt blob restore_live_registers(sasm); __ leave(); - __ b(RuntimeAddress(deopt_blob->unpack_with_reexecution())); + __ far_jump(RuntimeAddress(deopt_blob->unpack_with_reexecution())); __ bind(cont); restore_live_registers(sasm); @@ -1095,7 +1095,7 @@ DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob(); assert(deopt_blob != NULL, "deoptimization blob must have been created"); __ leave(); - __ b(RuntimeAddress(deopt_blob->unpack_with_reexecution())); + __ far_jump(RuntimeAddress(deopt_blob->unpack_with_reexecution())); } break; @@ -1304,7 +1304,7 @@ DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob(); assert(deopt_blob != NULL, "deoptimization blob must have been created"); - __ b(RuntimeAddress(deopt_blob->unpack_with_reexecution())); + __ far_jump(RuntimeAddress(deopt_blob->unpack_with_reexecution())); } break;