hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
changeset 10739 91935236600e
parent 10565 dc90c239f4ec
child 11723 f3702d2e534c
equal deleted inserted replaced
10738:cc19612c6b9f 10739:91935236600e
   273 #  define context_trapno uc_mcontext.__gregs[_REG_TRAPNO]
   273 #  define context_trapno uc_mcontext.__gregs[_REG_TRAPNO]
   274 # endif
   274 # endif
   275 #endif
   275 #endif
   276 
   276 
   277 address os::current_stack_pointer() {
   277 address os::current_stack_pointer() {
   278 #ifdef SPARC_WORKS
   278 #if defined(__clang__) || defined(__llvm__)
       
   279   register void *esp;
       
   280   __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
       
   281   return (address) esp;
       
   282 #elif defined(SPARC_WORKS)
   279   register void *esp;
   283   register void *esp;
   280   __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
   284   __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
   281   return (address) ((char*)esp + sizeof(long)*2);
   285   return (address) ((char*)esp + sizeof(long)*2);
   282 #else
   286 #else
   283   register void *esp __asm__ (SPELL_REG_SP);
   287   register void *esp __asm__ (SPELL_REG_SP);
   356 frame os::get_sender_for_C_frame(frame* fr) {
   360 frame os::get_sender_for_C_frame(frame* fr) {
   357   return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
   361   return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
   358 }
   362 }
   359 
   363 
   360 intptr_t* _get_previous_fp() {
   364 intptr_t* _get_previous_fp() {
   361 #ifdef SPARC_WORKS
   365 #if defined(SPARC_WORKS) || defined(__clang__)
   362   register intptr_t **ebp;
   366   register intptr_t **ebp;
   363   __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
   367   __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
   364 #else
   368 #else
   365   register intptr_t **ebp __asm__ (SPELL_REG_FP);
   369   register intptr_t **ebp __asm__ (SPELL_REG_FP);
   366 #endif
   370 #endif