--- a/hotspot/src/cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp Fri Jan 08 10:14:02 2016 +0100
+++ b/hotspot/src/cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp Tue Jan 12 15:01:52 2016 +0000
@@ -256,6 +256,7 @@
void DeoptimizeStub::emit_code(LIR_Assembler* ce) {
__ bind(_entry);
+ ce->store_parameter(_trap_request, 0);
__ far_call(RuntimeAddress(Runtime1::entry_for(Runtime1::deoptimize_id)));
ce->add_call_info_here(_info);
DEBUG_ONLY(__ should_not_reach_here());
--- a/hotspot/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Fri Jan 08 10:14:02 2016 +0100
+++ b/hotspot/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Tue Jan 12 15:01:52 2016 +0000
@@ -1066,7 +1066,9 @@
{
StubFrame f(sasm, "deoptimize", dont_gc_arguments);
OopMap* oop_map = save_live_registers(sasm);
- int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, deoptimize));
+ f.load_argument(0, c_rarg1);
+ int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, deoptimize), c_rarg1);
+
oop_maps = new OopMapSet();
oop_maps->add_gc_map(call_offset, oop_map);
restore_live_registers(sasm);