Mercurial > hg > graal-jvmci-8
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 } |