Print this page


Split Close
Expand all
Collapse all
          --- old/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
          +++ new/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
↓ open down ↓ 354 lines elided ↑ open up ↑
 355  355    return frame(sp, fp, epc.pc());
 356  356  }
 357  357  
 358  358  // By default, gcc always save frame pointer (%ebp/%rbp) on stack. It may get
 359  359  // turned off by -fomit-frame-pointer,
 360  360  frame os::get_sender_for_C_frame(frame* fr) {
 361  361    return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
 362  362  }
 363  363  
 364  364  intptr_t* _get_previous_fp() {
 365      -#if defined(SPARC_WORKS) || defined(__clang__)
      365 +#if defined(SPARC_WORKS) || defined(__clang__) || defined(__llvm__)
 366  366    register intptr_t **ebp;
 367  367    __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
 368  368  #else
 369  369    register intptr_t **ebp __asm__ (SPELL_REG_FP);
 370  370  #endif
 371  371    return (intptr_t*) *ebp;   // we want what it points to.
 372  372  }
 373  373  
 374  374  
 375  375  frame os::current_frame() {
↓ open down ↓ 753 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX