src/cpu/sparc/vm/frame_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7043301 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/frame_sparc.cpp

Print this page




 794       case T_FLOAT   : value_result->f = *(jfloat*)tos_addr; break;
 795       case T_DOUBLE  : value_result->d = *(jdouble*)tos_addr; break;
 796       case T_VOID    : /* Nothing to do */ break;
 797       default        : ShouldNotReachHere();
 798     }
 799   };
 800 
 801   return type;
 802 }
 803 
 804 // Lesp pointer is one word lower than the top item on the stack.
 805 intptr_t* frame::interpreter_frame_tos_at(jint offset) const {
 806   int index = (Interpreter::expr_offset_in_bytes(offset)/wordSize) - 1;
 807   return &interpreter_frame_tos_address()[index];
 808 }
 809 
 810 
 811 #ifdef ASSERT
 812 
 813 #define DESCRIBE_FP_OFFSET(name) \
 814   values.describe(-1, fp() + frame::name##_offset, #name)
 815 
 816 void frame::describe_pd(FrameValues& values, int frame_no) {
 817   for (int w = 0; w < frame::register_save_words; w++) {
 818     values.describe(frame_no, sp() + w, err_msg("register save area word %d", w), 1);
 819   }
 820 
 821   if (is_interpreted_frame()) {
 822     DESCRIBE_FP_OFFSET(interpreter_frame_d_scratch_fp);
 823     DESCRIBE_FP_OFFSET(interpreter_frame_l_scratch_fp);
 824     DESCRIBE_FP_OFFSET(interpreter_frame_padding);
 825     DESCRIBE_FP_OFFSET(interpreter_frame_oop_temp);
 826   }
 827 
 828   if (!is_compiled_frame()) {
 829     if (frame::callee_aggregate_return_pointer_words != 0) {
 830       values.describe(frame_no, sp() + frame::callee_aggregate_return_pointer_sp_offset, "callee_aggregate_return_pointer_word");
 831     }
 832     for (int w = 0; w < frame::callee_register_argument_save_area_words; w++) {
 833       values.describe(frame_no, sp() + frame::callee_register_argument_save_area_sp_offset + w,
 834                       err_msg("callee_register_argument_save_area_words %d", w));


 794       case T_FLOAT   : value_result->f = *(jfloat*)tos_addr; break;
 795       case T_DOUBLE  : value_result->d = *(jdouble*)tos_addr; break;
 796       case T_VOID    : /* Nothing to do */ break;
 797       default        : ShouldNotReachHere();
 798     }
 799   };
 800 
 801   return type;
 802 }
 803 
 804 // Lesp pointer is one word lower than the top item on the stack.
 805 intptr_t* frame::interpreter_frame_tos_at(jint offset) const {
 806   int index = (Interpreter::expr_offset_in_bytes(offset)/wordSize) - 1;
 807   return &interpreter_frame_tos_address()[index];
 808 }
 809 
 810 
 811 #ifdef ASSERT
 812 
 813 #define DESCRIBE_FP_OFFSET(name) \
 814   values.describe(frame_no, fp() + frame::name##_offset, #name)
 815 
 816 void frame::describe_pd(FrameValues& values, int frame_no) {
 817   for (int w = 0; w < frame::register_save_words; w++) {
 818     values.describe(frame_no, sp() + w, err_msg("register save area word %d", w), 1);
 819   }
 820 
 821   if (is_interpreted_frame()) {
 822     DESCRIBE_FP_OFFSET(interpreter_frame_d_scratch_fp);
 823     DESCRIBE_FP_OFFSET(interpreter_frame_l_scratch_fp);
 824     DESCRIBE_FP_OFFSET(interpreter_frame_padding);
 825     DESCRIBE_FP_OFFSET(interpreter_frame_oop_temp);
 826   }
 827 
 828   if (!is_compiled_frame()) {
 829     if (frame::callee_aggregate_return_pointer_words != 0) {
 830       values.describe(frame_no, sp() + frame::callee_aggregate_return_pointer_sp_offset, "callee_aggregate_return_pointer_word");
 831     }
 832     for (int w = 0; w < frame::callee_register_argument_save_area_words; w++) {
 833       values.describe(frame_no, sp() + frame::callee_register_argument_save_area_sp_offset + w,
 834                       err_msg("callee_register_argument_save_area_words %d", w));
src/cpu/sparc/vm/frame_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File