src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp

Print this page
rev 3149 : 7147740: add assertions to check stack alignment on VM entry from generated code (x64)
Summary: check stack alignment on VM entry on x64.
Reviewed-by:

*** 235,244 **** --- 235,250 ---- frame os::get_sender_for_C_frame(frame* fr) { return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); } + extern "C" intptr_t *_get_current_sp(); // in .il file + + address os::current_stack_pointer() { + return (address)_get_current_sp();; + } + extern "C" intptr_t *_get_current_fp(); // in .il file frame os::current_frame() { intptr_t* fp = _get_current_fp(); // it's inlined so want current fp frame myframe((intptr_t*)os::current_stack_pointer(),
*** 952,956 **** --- 958,970 ---- void os::setup_fpu() { address fpu_cntrl = StubRoutines::addr_fpu_cntrl_wrd_std(); _solaris_raw_setup_fpu(fpu_cntrl); } #endif // AMD64 + + #ifndef PRODUCT + void os::verify_stack_alignment() { + #ifdef AMD64 + assert(((intptr_t)os::current_stack_pointer() & (StackAlignmentInBytes-1)) == 0, "incorrect stack alignment"); + #endif + } + #endif