< prev index next >

src/hotspot/share/code/relocInfo.hpp

Print this page
@@ -645,15 +645,15 @@
    int          datalen()      const { return _datalen; }
    bool     has_current()      const { return _datalen >= 0; }
    bool   addr_in_const()      const;
  
    address section_start(int n) const {
-     assert(_section_start[n], "must be initialized");
+     assert(_section_start[n], "section %d must be initialized", n);
      return _section_start[n];
    }
    address section_end(int n) const {
-     assert(_section_end[n], "must be initialized");
+     assert(_section_end[n], "section %d must be initialized", n);
      return _section_end[n];
    }
  
    // The address points to the affected displacement part of the instruction.
    // For RISC, this is just the whole instruction.

@@ -1310,10 +1310,29 @@
    // Return the address of the NativeCall that owns the trampoline.
    address owner() { return _owner; }
  
    void pack_data_to(CodeSection * dest) override;
    void unpack_data() override;
+ #if defined(AARCH64)
+   address    pd_destination     ();
+   void       pd_set_destination (address x);
+ #endif
+   address  destination() {
+ #if defined(AARCH64)
+     return pd_destination();
+ #else
+     fatal("trampoline_stub_Relocation::destination() unimplemented");
+     return (address)-1;
+ #endif
+   }
+   void     set_destination(address x) {
+ #if defined(AARCH64)
+     pd_set_destination(x);
+ #else
+     fatal("trampoline_stub_Relocation::set_destination() unimplemented");
+ #endif
+   }
  
    // Find the trampoline stub for a call.
    static address get_trampoline_for(address call, nmethod* code);
  };
  

@@ -1354,10 +1373,11 @@
    // to short indexes, if they are pre-registered by the stub mechanism.
    // If the "a" value is 0 (i.e., _target is nullptr), the address is stored
    // in the code stream.  See external_word_Relocation::target().
    void pack_data_to(CodeSection* dest) override;
    void unpack_data() override;
+   short* pack_data_to(short* p); // Pack address into buffer
  
    void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) override;
    address  target();        // if _target==nullptr, fetch addr from code stream
    address  value() override { return target(); }
  };
< prev index next >