< prev index next >

src/hotspot/cpu/arm/sharedRuntime_arm.cpp

Print this page

1850   __ str(R1, Address(SP, RegisterSaver::Rmethod_offset * wordSize));
1851 
1852   // Place target address (VM call result) into Rtemp
1853   __ str(R0, Address(SP, RegisterSaver::Rtemp_offset * wordSize));
1854 
1855   RegisterSaver::restore_live_registers(masm);
1856   __ jump(Rtemp);
1857 
1858   __ bind(pending_exception);
1859 
1860   RegisterSaver::restore_live_registers(masm);
1861   const Register Rzero = __ zero_register(Rtemp);
1862   __ str(Rzero, Address(Rthread, JavaThread::vm_result_2_offset()));
1863   __ mov(Rexception_pc, LR);
1864   __ jump(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type, Rtemp);
1865 
1866   __ flush();
1867 
1868   return RuntimeStub::new_runtime_stub(name, &buffer, frame_complete, frame_size_words, oop_maps, true);
1869 }
1870 
1871 #ifdef COMPILER2
1872 RuntimeStub* SharedRuntime::make_native_invoker(address call_target,
1873                                                 int shadow_space_bytes,
1874                                                 const GrowableArray<VMReg>& input_registers,
1875                                                 const GrowableArray<VMReg>& output_registers) {
1876   Unimplemented();
1877   return nullptr;
1878 }
1879 #endif

1850   __ str(R1, Address(SP, RegisterSaver::Rmethod_offset * wordSize));
1851 
1852   // Place target address (VM call result) into Rtemp
1853   __ str(R0, Address(SP, RegisterSaver::Rtemp_offset * wordSize));
1854 
1855   RegisterSaver::restore_live_registers(masm);
1856   __ jump(Rtemp);
1857 
1858   __ bind(pending_exception);
1859 
1860   RegisterSaver::restore_live_registers(masm);
1861   const Register Rzero = __ zero_register(Rtemp);
1862   __ str(Rzero, Address(Rthread, JavaThread::vm_result_2_offset()));
1863   __ mov(Rexception_pc, LR);
1864   __ jump(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type, Rtemp);
1865 
1866   __ flush();
1867 
1868   return RuntimeStub::new_runtime_stub(name, &buffer, frame_complete, frame_size_words, oop_maps, true);
1869 }










< prev index next >