< prev index next >

src/hotspot/share/c1/c1_CodeStubs.hpp

Print this page
*** 55,10 ***
--- 55,11 ---
    void assert_no_unbound_labels()                { assert(!_entry.is_unbound() && !_continuation.is_unbound(), "unbound label"); }
    virtual void emit_code(LIR_Assembler* e) = 0;
    virtual CodeEmitInfo* info() const             { return NULL; }
    virtual bool is_exception_throw_stub() const   { return false; }
    virtual bool is_simple_exception_stub() const  { return false; }
+   virtual int nr_immediate_oops_patched() const  { return 0; }
  #ifndef PRODUCT
    virtual void print_name(outputStream* out) const = 0;
  #endif
  
    // label access

*** 410,10 ***
--- 411,17 ---
      align_patch_site(masm);
      _pc_start = masm->pc();
      masm->bind(_patch_site_entry);
    }
  
+   virtual int nr_immediate_oops_patched() const  { 
+     if (_id == load_mirror_id || _id == load_appendix_id) {
+       return 1;
+     }
+     return 0; 
+   }
+ 
    void install(MacroAssembler* masm, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) {
      _info = info;
      _obj = obj;
      masm->bind(_patch_site_continuation);
      _bytes_to_copy = masm->pc() - pc_start();
< prev index next >