< prev index next >

src/hotspot/share/c1/c1_FrameMap.hpp

Print this page
@@ -183,11 +183,11 @@
    static LIR_Opr as_address_opr(Register r) {
      return LIR_OprFact::single_cpu_address(cpu_reg2rnr(r));
    }
  
    FrameMap(ciMethod* method, int monitors, int reserved_argument_area_size);
-   bool finalize_frame(int nof_slots);
+   bool finalize_frame(int nof_slots, bool needs_stack_repair);
  
    int   reserved_argument_area_size () const     { return _reserved_argument_area_size; }
    int   framesize                   () const     { assert(_framesize != -1, "hasn't been calculated"); return _framesize; }
    ByteSize framesize_in_bytes       () const     { return in_ByteSize(framesize() * 4); }
    int   num_monitors                () const     { return _num_monitors; }

@@ -209,10 +209,13 @@
      return make_new_address(sp_offset_for_monitor_lock(monitor_index));
    }
    Address address_for_monitor_object(int monitor_index) const {
      return make_new_address(sp_offset_for_monitor_object(monitor_index));
    }
+   Address address_for_orig_pc_addr() const {
+     return make_new_address(sp_offset_for_monitor_base(_num_monitors));
+   }
  
    // Creates Location describing desired slot and returns it via pointer
    // to Location object. Returns true if the stack frame offset was legal
    // (as defined by Location::legal_offset_in_bytes()), false otherwise.
    // Do not use the returned location if this returns false.
< prev index next >