equal
deleted
inserted
replaced
1814 const BasicType* sig_bt, |
1814 const BasicType* sig_bt, |
1815 const VMRegPair* regs) { |
1815 const VMRegPair* regs) { |
1816 Register temp_reg = rbx; // not part of any compiled calling seq |
1816 Register temp_reg = rbx; // not part of any compiled calling seq |
1817 if (VerifyOops) { |
1817 if (VerifyOops) { |
1818 for (int i = 0; i < method->size_of_parameters(); i++) { |
1818 for (int i = 0; i < method->size_of_parameters(); i++) { |
1819 if (sig_bt[i] == T_OBJECT || |
1819 if (is_reference_type(sig_bt[i])) { |
1820 sig_bt[i] == T_ARRAY) { |
|
1821 VMReg r = regs[i].first(); |
1820 VMReg r = regs[i].first(); |
1822 assert(r->is_valid(), "bad oop arg"); |
1821 assert(r->is_valid(), "bad oop arg"); |
1823 if (r->is_stack()) { |
1822 if (r->is_stack()) { |
1824 __ movptr(temp_reg, Address(rsp, r->reg2stack() * VMRegImpl::stack_slot_size + wordSize)); |
1823 __ movptr(temp_reg, Address(rsp, r->reg2stack() * VMRegImpl::stack_slot_size + wordSize)); |
1825 __ verify_oop(temp_reg); |
1824 __ verify_oop(temp_reg); |
2715 } |
2714 } |
2716 |
2715 |
2717 __ reset_last_Java_frame(false); |
2716 __ reset_last_Java_frame(false); |
2718 |
2717 |
2719 // Unbox oop result, e.g. JNIHandles::resolve value. |
2718 // Unbox oop result, e.g. JNIHandles::resolve value. |
2720 if (ret_type == T_OBJECT || ret_type == T_ARRAY) { |
2719 if (is_reference_type(ret_type)) { |
2721 __ resolve_jobject(rax /* value */, |
2720 __ resolve_jobject(rax /* value */, |
2722 r15_thread /* thread */, |
2721 r15_thread /* thread */, |
2723 rcx /* tmp */); |
2722 rcx /* tmp */); |
2724 } |
2723 } |
2725 |
2724 |