equal
deleted
inserted
replaced
25 // no precompiled headers |
25 // no precompiled headers |
26 #include "asm/macroAssembler.hpp" |
26 #include "asm/macroAssembler.hpp" |
27 #include "classfile/classLoader.hpp" |
27 #include "classfile/classLoader.hpp" |
28 #include "classfile/systemDictionary.hpp" |
28 #include "classfile/systemDictionary.hpp" |
29 #include "classfile/vmSymbols.hpp" |
29 #include "classfile/vmSymbols.hpp" |
|
30 #include "code/codeCache.hpp" |
30 #include "code/icBuffer.hpp" |
31 #include "code/icBuffer.hpp" |
31 #include "code/vtableStubs.hpp" |
32 #include "code/vtableStubs.hpp" |
32 #include "interpreter/interpreter.hpp" |
33 #include "interpreter/interpreter.hpp" |
33 #include "jvm_linux.h" |
34 #include "jvm_linux.h" |
34 #include "memory/allocation.inline.hpp" |
35 #include "memory/allocation.inline.hpp" |
345 address os::Linux::ucontext_get_pc(ucontext_t* uc) { |
346 address os::Linux::ucontext_get_pc(ucontext_t* uc) { |
346 return (address) SIG_PC((sigcontext*)uc); |
347 return (address) SIG_PC((sigcontext*)uc); |
347 } |
348 } |
348 |
349 |
349 void os::Linux::ucontext_set_pc(ucontext_t* uc, address pc) { |
350 void os::Linux::ucontext_set_pc(ucontext_t* uc, address pc) { |
350 sigcontext_t* ctx = (sigcontext_t*) uc; |
351 sigcontext* ctx = (sigcontext*) uc; |
351 SIG_PC(ctx) = (intptr_t)addr; |
352 SIG_PC(ctx) = (intptr_t)pc; |
352 SIG_NPC(ctx) = (intptr_t)(addr+4); |
353 SIG_NPC(ctx) = (intptr_t)(pc+4); |
353 } |
354 } |
354 |
355 |
355 intptr_t* os::Linux::ucontext_get_sp(ucontext_t *uc) { |
356 intptr_t* os::Linux::ucontext_get_sp(ucontext_t *uc) { |
356 return (intptr_t*) |
357 return (intptr_t*) |
357 ((intptr_t)SIG_REGS((sigcontext*)uc).u_regs[CON_O6] + STACK_BIAS); |
358 ((intptr_t)SIG_REGS((sigcontext*)uc).u_regs[CON_O6] + STACK_BIAS); |
693 sigprocmask(SIG_UNBLOCK, &newset, NULL); |
694 sigprocmask(SIG_UNBLOCK, &newset, NULL); |
694 |
695 |
695 VMError::report_and_die(t, sig, pc, info, ucVoid); |
696 VMError::report_and_die(t, sig, pc, info, ucVoid); |
696 |
697 |
697 ShouldNotReachHere(); |
698 ShouldNotReachHere(); |
|
699 return false; |
698 } |
700 } |
699 |
701 |
700 void os::Linux::init_thread_fpu_state(void) { |
702 void os::Linux::init_thread_fpu_state(void) { |
701 // Nothing to do |
703 // Nothing to do |
702 } |
704 } |