comparison src/share/vm/graal/graalCodeInstaller.cpp @ 11760:ce0b00597980

made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
author Doug Simon <doug.simon@oracle.com>
date Tue, 24 Sep 2013 08:51:02 +0200
parents 87cab8081da4
children ff1d8605f354
comparison
equal deleted inserted replaced
11759:8bcd76c3f23b 11760:ce0b00597980
808 case MARK_INVOKESTATIC: 808 case MARK_INVOKESTATIC:
809 case MARK_INVOKESPECIAL: 809 case MARK_INVOKESPECIAL:
810 _next_call_type = (MarkId) id; 810 _next_call_type = (MarkId) id;
811 _invoke_mark_pc = pc; 811 _invoke_mark_pc = pc;
812 break; 812 break;
813 case MARK_POLL_NEAR: { 813 case MARK_POLL_NEAR:
814 NativeInstruction* ni = nativeInstruction_at(pc);
815 int32_t* disp = (int32_t*) pd_locate_operand(pc);
816 // int32_t* disp = (int32_t*) Assembler::locate_operand(instruction, Assembler::disp32_operand);
817 int32_t offset = *disp; // The Java code installed the polling page offset into the disp32 operand
818 intptr_t new_disp = (intptr_t) (os::get_polling_page() + offset) - (intptr_t) ni;
819 *disp = (int32_t)new_disp;
820 }
821 case MARK_POLL_FAR: 814 case MARK_POLL_FAR:
822 _instructions->relocate(pc, relocInfo::poll_type); 815 case MARK_POLL_RETURN_NEAR:
823 break;
824 case MARK_POLL_RETURN_NEAR: {
825 NativeInstruction* ni = nativeInstruction_at(pc);
826 int32_t* disp = (int32_t*) pd_locate_operand(pc);
827 // int32_t* disp = (int32_t*) Assembler::locate_operand(instruction, Assembler::disp32_operand);
828 int32_t offset = *disp; // The Java code installed the polling page offset into the disp32 operand
829 intptr_t new_disp = (intptr_t) (os::get_polling_page() + offset) - (intptr_t) ni;
830 *disp = (int32_t)new_disp;
831 }
832 case MARK_POLL_RETURN_FAR: 816 case MARK_POLL_RETURN_FAR:
833 _instructions->relocate(pc, relocInfo::poll_return_type); 817 pd_relocate_poll(pc, id);
834 break; 818 break;
835 default: 819 default:
836 ShouldNotReachHere(); 820 ShouldNotReachHere();
837 break; 821 break;
838 } 822 }