hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
changeset 34667 6b077f0ef25d
parent 34633 2a6c7c7b30a7
child 35077 8b86440d3bf1
equal deleted inserted replaced
34665:9fdcc78b5398 34667:6b077f0ef25d
    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 }