comparison src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp @ 5903:da4be62fb889

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: kvn, never
author roland
date Mon, 27 Feb 2012 09:17:44 +0100
parents 1d1603768966
children bf2edd3c9b0f
comparison
equal deleted inserted replaced
5902:c7987cbaf2ca 5903:da4be62fb889
249 249
250 frame os::get_sender_for_C_frame(frame* fr) { 250 frame os::get_sender_for_C_frame(frame* fr) {
251 return frame(fr->sender_sp(), frame::unpatchable, fr->sender_pc()); 251 return frame(fr->sender_sp(), frame::unpatchable, fr->sender_pc());
252 } 252 }
253 253
254 // Returns an estimate of the current stack pointer. Result must be guaranteed to
255 // point into the calling threads stack, and be no lower than the current stack
256 // pointer.
257 address os::current_stack_pointer() {
258 volatile int dummy;
259 address sp = (address)&dummy + 8; // %%%% need to confirm if this is right
260 return sp;
261 }
262
254 frame os::current_frame() { 263 frame os::current_frame() {
255 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()(); 264 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()();
256 frame myframe(sp, frame::unpatchable, 265 frame myframe(sp, frame::unpatchable,
257 CAST_FROM_FN_PTR(address, os::current_frame)); 266 CAST_FROM_FN_PTR(address, os::current_frame));
258 if (os::is_first_C_frame(&myframe)) { 267 if (os::is_first_C_frame(&myframe)) {
813 // For compiler1 the architecture is v8 and frps isn't present in v8 822 // For compiler1 the architecture is v8 and frps isn't present in v8
814 extern "C" void _mark_fpu_nosave() { 823 extern "C" void _mark_fpu_nosave() {
815 __asm__ __volatile__ ("wr %%g0, 0, %%fprs \n\t" : : :); 824 __asm__ __volatile__ ("wr %%g0, 0, %%fprs \n\t" : : :);
816 } 825 }
817 #endif //defined(__sparc) && defined(COMPILER2) 826 #endif //defined(__sparc) && defined(COMPILER2)
827
828 #ifndef PRODUCT
829 void os::verify_stack_alignment() {
830 }
831 #endif