< prev index next >

src/hotspot/cpu/ppc/frame_ppc.cpp

Print this page
@@ -118,10 +118,13 @@
  
      volatile common_abi* sender_abi = (common_abi*) fp; // May get updated concurrently by deoptimization!
      intptr_t* sender_sp = (intptr_t*) fp;
      address   sender_pc = (address) sender_abi->lr;
  
+     DEBUG_ONLY(nmethod* nm = _cb->as_nmethod_or_null());
+     assert(nm == nullptr || !nm->needs_stack_repair(), "unsupported");
+ 
      if (Continuation::is_return_barrier_entry(sender_pc)) {
        // sender_pc might be invalid so check that the frame
        // actually belongs to a Continuation.
        if (!Continuation::is_frame_in_continuation(thread, *this)) {
          return false;

@@ -456,10 +459,12 @@
        DESCRIBE_ADDRESS(lresult);
        DESCRIBE_ADDRESS(fresult);
    }
  
    if (is_java_frame() || Continuation::is_continuation_enterSpecial(*this)) {
+     DEBUG_ONLY(nmethod* nm = _cb->as_nmethod_or_null());
+     assert(nm == nullptr || !nm->needs_stack_repair(), "unsupported");
      intptr_t* ret_pc_loc = (intptr_t*)&own_abi()->lr;
      address ret_pc = *(address*)ret_pc_loc;
      values.describe(frame_no, ret_pc_loc,
        Continuation::is_return_barrier_entry(ret_pc) ? "return address (return barrier)" : "return address");
    }

@@ -490,5 +495,20 @@
  }
  
  intptr_t* frame::interpreter_frame_tos_at(jint offset) const {
    return &interpreter_frame_tos_address()[offset];
  }
+ 
+ intptr_t* frame::repair_sender_sp(nmethod* nm, intptr_t* sp, intptr_t** saved_fp_addr) {
+   assert(nm != nullptr && nm->needs_stack_repair(), "");
+   Unimplemented();
+   return nullptr;
+ }
+ 
+ bool frame::was_augmented_on_entry(int& real_size) const {
+   assert(is_compiled_frame(), "");
+   if (_cb->as_nmethod_or_null()->needs_stack_repair()) {
+     Unimplemented();
+   }
+   real_size = _cb->frame_size();
+   return false;
+ }
< prev index next >