552 // Get caller pc from stack slot of gpr14.
553 address native_sender_pc() const;
554 // Get caller pc from stack slot of gpr10.
555 address callstub_sender_pc() const;
556
557 // Dump all frames starting at a given C stack pointer.
558 // max_frames: Limit number of traced frames.
559 // <= 0 --> full trace
560 // > 0 --> trace the #max_frames topmost frames
561 static void back_trace(outputStream* st, intptr_t* start_sp, intptr_t* top_pc,
562 unsigned long flags, int max_frames = 0);
563
564 enum {
565 // size, in words, of frame metadata (e.g. pc and link)
566 metadata_words = sizeof(z_java_abi) >> LogBytesPerWord,
567 metadata_words_at_bottom = 0,
568 metadata_words_at_top = sizeof(z_java_abi) >> LogBytesPerWord,
569 // in bytes
570 frame_alignment = 8,
571 // size, in words, of maximum shift in frame position due to alignment
572 align_wiggle = 0
573 };
574
575 // returns the sending frame, without applying any barriers
576 inline frame sender_raw(RegisterMap* map) const;
577
578 #endif // CPU_S390_FRAME_S390_HPP
|
552 // Get caller pc from stack slot of gpr14.
553 address native_sender_pc() const;
554 // Get caller pc from stack slot of gpr10.
555 address callstub_sender_pc() const;
556
557 // Dump all frames starting at a given C stack pointer.
558 // max_frames: Limit number of traced frames.
559 // <= 0 --> full trace
560 // > 0 --> trace the #max_frames topmost frames
561 static void back_trace(outputStream* st, intptr_t* start_sp, intptr_t* top_pc,
562 unsigned long flags, int max_frames = 0);
563
564 enum {
565 // size, in words, of frame metadata (e.g. pc and link)
566 metadata_words = sizeof(z_java_abi) >> LogBytesPerWord,
567 metadata_words_at_bottom = 0,
568 metadata_words_at_top = sizeof(z_java_abi) >> LogBytesPerWord,
569 // in bytes
570 frame_alignment = 8,
571 // size, in words, of maximum shift in frame position due to alignment
572 align_wiggle = 0,
573 // This is wrong and unimplemented
574 sender_sp_offset = 0
575 };
576
577 // returns the sending frame, without applying any barriers
578 inline frame sender_raw(RegisterMap* map) const;
579
580 intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
581 static intptr_t* repair_sender_sp(nmethod* nm, intptr_t* sp, intptr_t** saved_fp_addr);
582 bool was_augmented_on_entry(int& real_size) const;
583
584 #endif // CPU_S390_FRAME_S390_HPP
|