Lines Matching defs:sp

48     _window = fr.sp();
179 address _SP = (address) sp();
182 // sp must be within the stack
190 // unextended sp must be within the stack and above or equal sp
196 // an fp must be within the stack and above (but not equal) sp
200 // We know sp/unextended_sp are safe only fp is questionable here
242 intptr_t* younger_sp = sp();
345 frame::frame(intptr_t* sp, unpatchable_t, address pc, CodeBlob* cb) {
347 assert( (((intptr_t)sp & (wordSize-1)) == 0), "frame constructor passed an invalid sp");
349 _sp = sp;
367 frame::frame(intptr_t* sp, intptr_t* younger_sp, bool younger_frame_is_interpreted) :
368 _sp(sp),
378 assert( (intptr_t*)younger_sp[FP->sp_offset_in_saved_window()] == (intptr_t*)((intptr_t)sp - STACK_BIAS), "younger_sp must be valid");
394 _sp_adjustment_by_callee = (intptr_t*) ((intptr_t) sp[L7_mh_SP_save->sp_offset_in_saved_window()] + STACK_BIAS) - sp;
404 _sp_adjustment_by_callee = (intptr_t*) ((intptr_t) younger_sp[I5_savedSP->sp_offset_in_saved_window()] + STACK_BIAS) - sp;
507 intptr_t* younger_sp = sp();
508 intptr_t* sp = sender_sp();
531 map->shift_window(sp, younger_sp);
537 map->shift_window(sp, younger_sp);
548 return frame(sp, younger_sp, frame_is_interpreted);
575 static bool sp_is_valid(intptr_t* old_sp, intptr_t* young_sp, intptr_t* sp) {
576 return (((intptr_t)sp & (2*wordSize-1)) == 0 &&
577 sp <= old_sp &&
578 sp >= young_sp);
583 Find the (biased) sp that is just younger than old_sp starting at sp.
586 intptr_t* frame::next_younger_sp_or_null(intptr_t* old_sp, intptr_t* sp) {
589 intptr_t* orig_sp = sp;
591 int max_frames = (old_sp - sp) / 16; // Minimum frame size is 16
593 while(sp != old_sp && sp_is_valid(old_sp, orig_sp, sp)) {
597 previous_sp = sp;
598 sp = (intptr_t*)sp[FP->sp_offset_in_saved_window()];
599 sp = (intptr_t*)((intptr_t)sp + STACK_BIAS);
602 return (sp == old_sp ? previous_sp : NULL);
606 Determine if "sp" is a valid stack pointer. "sp" is assumed to be younger than
607 "valid_sp". So if "sp" is valid itself then it should be possible to walk frames
608 from "sp" to "valid_sp". The assumption is that the registers windows for the
611 bool frame::is_valid_stack_pointer(intptr_t* valid_sp, intptr_t* sp) {
612 return next_younger_sp_or_null(valid_sp, sp) != NULL;
641 if (sp() == 0 || (intptr_t(sp()) & (2*wordSize-1)) != 0) {
646 if (fp() + interpreter_frame_initial_sp_offset < sp()) {
651 if (fp() <= sp()) { // this attempts to deal with unsigned comparison above
665 if (fp() - sp() > 1024 + m->max_stack()*Interpreter::stackElementSize) {
697 // is the return address to the frame that contains "sp" as its stack pointer.
698 // This pc resides in the called of the frame corresponding to "sp".
706 void JavaFrameAnchor::capture_last_Java_pc(intptr_t* sp) {
708 // try and find the sp just younger than _last_Java_sp
709 intptr_t* _post_Java_sp = frame::next_younger_sp_or_null(last_Java_sp(), sp);
725 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()();
727 capture_last_Java_pc(sp);
735 intptr_t* LSP = (intptr_t*) sp()[Lentry_args->sp_offset_in_saved_window()];
830 values.describe(frame_no, sp() + w, err_msg("register save area word %d", w), 1);
841 if ((esp >= sp()) && (esp < fp())) {
848 values.describe(frame_no, sp() + frame::callee_aggregate_return_pointer_sp_offset, "callee_aggregate_return_pointer_word");
851 values.describe(frame_no, sp() + frame::callee_register_argument_save_area_sp_offset + w,