530 public:
531
532 // Get caller pc from stack slot of gpr14.
533 address native_sender_pc() const;
534 // Get caller pc from stack slot of gpr10.
535 address callstub_sender_pc() const;
536
537 // Dump all frames starting at a given C stack pointer.
538 // max_frames: Limit number of traced frames.
539 // <= 0 --> full trace
540 // > 0 --> trace the #max_frames topmost frames
541 static void back_trace(outputStream* st, intptr_t* start_sp, intptr_t* top_pc,
542 unsigned long flags, int max_frames = 0);
543
544 enum {
545 metadata_words = 0,
546 metadata_words_at_bottom = 0,
547 metadata_words_at_top = 0,
548 frame_alignment = 16,
549 // size, in words, of maximum shift in frame position due to alignment
550 align_wiggle = 1
551 };
552
553 static jint interpreter_frame_expression_stack_direction() { return -1; }
554
555 #endif // CPU_S390_FRAME_S390_HPP
|
530 public:
531
532 // Get caller pc from stack slot of gpr14.
533 address native_sender_pc() const;
534 // Get caller pc from stack slot of gpr10.
535 address callstub_sender_pc() const;
536
537 // Dump all frames starting at a given C stack pointer.
538 // max_frames: Limit number of traced frames.
539 // <= 0 --> full trace
540 // > 0 --> trace the #max_frames topmost frames
541 static void back_trace(outputStream* st, intptr_t* start_sp, intptr_t* top_pc,
542 unsigned long flags, int max_frames = 0);
543
544 enum {
545 metadata_words = 0,
546 metadata_words_at_bottom = 0,
547 metadata_words_at_top = 0,
548 frame_alignment = 16,
549 // size, in words, of maximum shift in frame position due to alignment
550 align_wiggle = 1,
551 // This is wrong and unimplemented
552 sender_sp_offset = 0
553 };
554
555 static jint interpreter_frame_expression_stack_direction() { return -1; }
556
557 intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
558 static intptr_t* repair_sender_sp(nmethod* nm, intptr_t* sp, intptr_t** saved_fp_addr);
559 bool was_augmented_on_entry(int& real_size) const;
560
561 #endif // CPU_S390_FRAME_S390_HPP
|