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 // This enum value specifies the offset from the pc remembered by
546 // call instructions to the location where control returns to
547 // after a normal return. Most architectures remember the return
548 // location directly, i.e. the offset is zero. This is the case
549 // for z/Architecture, too.
550 //
551 // Normal return address is the instruction following the branch.
552 pc_return_offset = 0,
553 metadata_words = 0,
554 metadata_words_at_bottom = 0,
555 metadata_words_at_top = 0,
556 frame_alignment = 16,
557 // size, in words, of maximum shift in frame position due to alignment
558 align_wiggle = 1
559 };
560
561 static jint interpreter_frame_expression_stack_direction() { return -1; }
562
563 #endif // CPU_S390_FRAME_S390_HPP
|
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 // This enum value specifies the offset from the pc remembered by
546 // call instructions to the location where control returns to
547 // after a normal return. Most architectures remember the return
548 // location directly, i.e. the offset is zero. This is the case
549 // for z/Architecture, too.
550 //
551 // Normal return address is the instruction following the branch.
552 pc_return_offset = 0,
553 metadata_words = 0,
554 metadata_words_at_bottom = 0,
555 metadata_words_at_top = 0,
556 frame_alignment = 16,
557 // size, in words, of maximum shift in frame position due to alignment
558 align_wiggle = 1,
559 // This is wrong and unimplemented
560 sender_sp_offset = 0
561 };
562
563 static jint interpreter_frame_expression_stack_direction() { return -1; }
564
565 intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
566 static intptr_t* repair_sender_sp(nmethod* nm, intptr_t* sp, intptr_t** saved_fp_addr);
567 bool was_augmented_on_entry(int& real_size) const;
568
569 #endif // CPU_S390_FRAME_S390_HPP
|