< prev index next >

src/hotspot/cpu/ppc/frame_ppc.cpp

Print this page
*** 217,10 ***
--- 217,11 ---
  frame frame::sender_for_interpreter_frame(RegisterMap *map) const {
    // Pass callers initial_caller_sp as unextended_sp.
    return frame(sender_sp(), sender_pc(), (intptr_t*)get_ijava_state()->sender_sp);
  }
  
+ template <bool stub>
  frame frame::sender_for_compiled_frame(RegisterMap *map) const {
    assert(map != NULL, "map must be set");
  
    // Frame owned by compiler.
    address pc = *compiled_sender_pc_addr(_cb);

*** 256,11 ***
    if (is_entry_frame())       return sender_for_entry_frame(map);
    if (is_interpreted_frame()) return sender_for_interpreter_frame(map);
    assert(_cb == CodeCache::find_blob(pc()),"Must be the same");
  
    if (_cb != NULL) {
!     return sender_for_compiled_frame(map);
    }
    // Must be native-compiled frame, i.e. the marshaling code for native
    // methods that exists in the core system.
    return frame(sender_sp(), sender_pc());
  }
--- 257,11 ---
    if (is_entry_frame())       return sender_for_entry_frame(map);
    if (is_interpreted_frame()) return sender_for_interpreter_frame(map);
    assert(_cb == CodeCache::find_blob(pc()),"Must be the same");
  
    if (_cb != NULL) {
!     return sender_for_compiled_frame<false>(map);
    }
    // Must be native-compiled frame, i.e. the marshaling code for native
    // methods that exists in the core system.
    return frame(sender_sp(), sender_pc());
  }

*** 372,10 ***
--- 373,14 ---
        DESCRIBE_ADDRESS(oop_tmp);
        DESCRIBE_ADDRESS(lresult);
        DESCRIBE_ADDRESS(fresult);
    }
  }
+ 
+ void frame::describe_top_pd(FrameValues& values) {
+   Unimplemented();
+ }
  #endif
  
  intptr_t *frame::initial_deoptimization_info() {
    // unused... but returns fp() to minimize changes introduced by 7087445
    return fp();

*** 386,5 ***
--- 391,22 ---
  frame::frame(void* sp, void* fp, void* pc) : _sp((intptr_t*)sp), _unextended_sp((intptr_t*)sp) {
    find_codeblob_and_set_pc_and_deopt_state((address)pc); // also sets _fp and adjusts _unextended_sp
  }
  
  #endif
+ 
+ // Pointer beyond the "oldest/deepest" BasicObjectLock on stack.
+ template BasicObjectLock* frame::interpreter_frame_monitor_end<true>() const;
+ template BasicObjectLock* frame::interpreter_frame_monitor_end<false>() const;
+ 
+ template <bool relative>
+ inline BasicObjectLock* frame::interpreter_frame_monitor_end() const {
+   return (BasicObjectLock*) get_ijava_state()->monitors;
+ }
+ 
+ template intptr_t* frame::interpreter_frame_tos_at<false>(jint offset) const;
+ template intptr_t* frame::interpreter_frame_tos_at<true >(jint offset) const;
+ 
+ template <bool relative>
+ inline intptr_t* frame::interpreter_frame_tos_at(jint offset) const {
+   return &interpreter_frame_tos_address()[offset];
+ }
< prev index next >