src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp

changeset 3606
da4be62fb889
parent 2708
1d1603768966
child 4136
bf2edd3c9b0f
equal deleted inserted replaced
3605:c7987cbaf2ca 3606:da4be62fb889
235 235
236 frame os::get_sender_for_C_frame(frame* fr) { 236 frame os::get_sender_for_C_frame(frame* fr) {
237 return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); 237 return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
238 } 238 }
239 239
240 extern "C" intptr_t *_get_current_sp(); // in .il file
241
242 address os::current_stack_pointer() {
243 return (address)_get_current_sp();
244 }
245
240 extern "C" intptr_t *_get_current_fp(); // in .il file 246 extern "C" intptr_t *_get_current_fp(); // in .il file
241 247
242 frame os::current_frame() { 248 frame os::current_frame() {
243 intptr_t* fp = _get_current_fp(); // it's inlined so want current fp 249 intptr_t* fp = _get_current_fp(); // it's inlined so want current fp
244 frame myframe((intptr_t*)os::current_stack_pointer(), 250 frame myframe((intptr_t*)os::current_stack_pointer(),
952 void os::setup_fpu() { 958 void os::setup_fpu() {
953 address fpu_cntrl = StubRoutines::addr_fpu_cntrl_wrd_std(); 959 address fpu_cntrl = StubRoutines::addr_fpu_cntrl_wrd_std();
954 _solaris_raw_setup_fpu(fpu_cntrl); 960 _solaris_raw_setup_fpu(fpu_cntrl);
955 } 961 }
956 #endif // AMD64 962 #endif // AMD64
963
964 #ifndef PRODUCT
965 void os::verify_stack_alignment() {
966 #ifdef AMD64
967 assert(((intptr_t)os::current_stack_pointer() & (StackAlignmentInBytes-1)) == 0, "incorrect stack alignment");
968 #endif
969 }
970 #endif

mercurial