< prev index next >

src/hotspot/cpu/ppc/macroAssembler_ppc.hpp

Print this page




  88   // Offset of given address to the global TOC.
  89   inline static int offset_to_global_toc(const address addr);
  90 
  91   // Address of TOC of the current method.
  92   inline address method_toc();
  93   // Offset of given address to TOC of the current method.
  94   inline int offset_to_method_toc(const address addr);
  95 
  96   // Global TOC.
  97   void calculate_address_from_global_toc(Register dst, address addr,
  98                                          bool hi16 = true, bool lo16 = true,
  99                                          bool add_relocation = true, bool emit_dummy_addr = false);
 100   inline void calculate_address_from_global_toc_hi16only(Register dst, address addr) {
 101     calculate_address_from_global_toc(dst, addr, true, false);
 102   };
 103   inline void calculate_address_from_global_toc_lo16only(Register dst, address addr) {
 104     calculate_address_from_global_toc(dst, addr, false, true);
 105   };
 106 
 107   inline static bool is_calculate_address_from_global_toc_at(address a, address bound);
 108   static int patch_calculate_address_from_global_toc_at(address a, address addr, address bound);

 109   static address get_address_of_calculate_address_from_global_toc_at(address a, address addr);
 110 
 111 #ifdef _LP64
 112   // Patch narrow oop constant.
 113   inline static bool is_set_narrow_oop(address a, address bound);
 114   static int patch_set_narrow_oop(address a, address bound, narrowOop data);

 115   static narrowOop get_narrow_oop(address a, address bound);
 116 #endif
 117 
 118   inline static bool is_load_const_at(address a);
 119 
 120   // Emits an oop const to the constant pool, loads the constant, and
 121   // sets a relocation info with address current_pc.
 122   // Returns true if successful.
 123   bool load_const_from_method_toc(Register dst, AddressLiteral& a, Register toc, bool fixed_size = false);
 124 
 125   static bool is_load_const_from_method_toc_at(address a);
 126   static int get_offset_of_load_const_from_method_toc_at(address a);
 127 
 128   // Get the 64 bit constant from a `load_const' sequence.
 129   static long get_const(address load_const);
 130 
 131   // Patch the 64 bit constant of a `load_const' sequence. This is a
 132   // low level procedure. It neither flushes the instruction cache nor
 133   // is it atomic.
 134   static void patch_const(address load_const, long x);




  88   // Offset of given address to the global TOC.
  89   inline static int offset_to_global_toc(const address addr);
  90 
  91   // Address of TOC of the current method.
  92   inline address method_toc();
  93   // Offset of given address to TOC of the current method.
  94   inline int offset_to_method_toc(const address addr);
  95 
  96   // Global TOC.
  97   void calculate_address_from_global_toc(Register dst, address addr,
  98                                          bool hi16 = true, bool lo16 = true,
  99                                          bool add_relocation = true, bool emit_dummy_addr = false);
 100   inline void calculate_address_from_global_toc_hi16only(Register dst, address addr) {
 101     calculate_address_from_global_toc(dst, addr, true, false);
 102   };
 103   inline void calculate_address_from_global_toc_lo16only(Register dst, address addr) {
 104     calculate_address_from_global_toc(dst, addr, false, true);
 105   };
 106 
 107   inline static bool is_calculate_address_from_global_toc_at(address a, address bound);
 108   // Returns address of first instruction in sequence.
 109   static address patch_calculate_address_from_global_toc_at(address a, address bound, address addr);
 110   static address get_address_of_calculate_address_from_global_toc_at(address a, address addr);
 111 
 112 #ifdef _LP64
 113   // Patch narrow oop constant.
 114   inline static bool is_set_narrow_oop(address a, address bound);
 115   // Returns address of first instruction in sequence.
 116   static address patch_set_narrow_oop(address a, address bound, narrowOop data);
 117   static narrowOop get_narrow_oop(address a, address bound);
 118 #endif
 119 
 120   inline static bool is_load_const_at(address a);
 121 
 122   // Emits an oop const to the constant pool, loads the constant, and
 123   // sets a relocation info with address current_pc.
 124   // Returns true if successful.
 125   bool load_const_from_method_toc(Register dst, AddressLiteral& a, Register toc, bool fixed_size = false);
 126 
 127   static bool is_load_const_from_method_toc_at(address a);
 128   static int get_offset_of_load_const_from_method_toc_at(address a);
 129 
 130   // Get the 64 bit constant from a `load_const' sequence.
 131   static long get_const(address load_const);
 132 
 133   // Patch the 64 bit constant of a `load_const' sequence. This is a
 134   // low level procedure. It neither flushes the instruction cache nor
 135   // is it atomic.
 136   static void patch_const(address load_const, long x);


< prev index next >