< prev index next >

src/hotspot/share/oops/valueKlass.hpp

Print this page




 198   oop oop_for_data(address data) const;
 199 
 200   // Query if h/w provides atomic load/store
 201   bool is_atomic();
 202 
 203   bool flatten_array();
 204 
 205   bool contains_oops() const { return nonstatic_oop_map_count() > 0; }
 206   int nonstatic_oop_count();
 207 
 208   // General store methods
 209   //
 210   // Normally loads and store methods would be found in *Oops classes, but since values can be
 211   // "in-lined" (flattened) into containing oops, these methods reside here in ValueKlass.
 212   //
 213   // "value_copy_*_to_new_*" assume new memory (i.e. IS_DEST_UNINITIALIZED for write barriers)
 214 
 215   void value_copy_payload_to_new_oop(void* src, oop dst);
 216   void value_copy_oop_to_new_oop(oop src, oop dst);
 217   void value_copy_oop_to_new_payload(oop src, void* dst);
 218 
 219   void value_copy_oop_to_payload(oop src, void* dst);
 220 



 221   // oop iterate raw value type data pointer (where oop_addr may not be an oop, but backing/array-element)
 222   template <typename T, class OopClosureType>
 223   inline void oop_iterate_specialized(const address oop_addr, OopClosureType* closure);
 224 
 225   template <typename T, class OopClosureType>
 226   inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi);
 227 
 228   // calling convention support
 229   void initialize_calling_convention(TRAPS);
 230   Array<SigEntry>* extended_sig() const {
 231     return *((Array<SigEntry>**)adr_extended_sig());
 232   }
 233   Array<VMRegPair>* return_regs() const {
 234     return *((Array<VMRegPair>**)adr_return_regs());
 235   }
 236   bool is_scalarizable() const;
 237   bool can_be_returned_as_fields() const;
 238   void save_oop_fields(const RegisterMap& map, GrowableArray<Handle>& handles) const;
 239   void restore_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const;
 240   oop realloc_result(const RegisterMap& reg_map, const GrowableArray<Handle>& handles, TRAPS);




 198   oop oop_for_data(address data) const;
 199 
 200   // Query if h/w provides atomic load/store
 201   bool is_atomic();
 202 
 203   bool flatten_array();
 204 
 205   bool contains_oops() const { return nonstatic_oop_map_count() > 0; }
 206   int nonstatic_oop_count();
 207 
 208   // General store methods
 209   //
 210   // Normally loads and store methods would be found in *Oops classes, but since values can be
 211   // "in-lined" (flattened) into containing oops, these methods reside here in ValueKlass.
 212   //
 213   // "value_copy_*_to_new_*" assume new memory (i.e. IS_DEST_UNINITIALIZED for write barriers)
 214 
 215   void value_copy_payload_to_new_oop(void* src, oop dst);
 216   void value_copy_oop_to_new_oop(oop src, oop dst);
 217   void value_copy_oop_to_new_payload(oop src, void* dst);

 218   void value_copy_oop_to_payload(oop src, void* dst);
 219 
 220   oop read_flattened_field(oop obj, int offset, TRAPS);
 221   void write_flattened_field(oop obj, int offset, oop value, TRAPS);
 222 
 223   // oop iterate raw value type data pointer (where oop_addr may not be an oop, but backing/array-element)
 224   template <typename T, class OopClosureType>
 225   inline void oop_iterate_specialized(const address oop_addr, OopClosureType* closure);
 226 
 227   template <typename T, class OopClosureType>
 228   inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi);
 229 
 230   // calling convention support
 231   void initialize_calling_convention(TRAPS);
 232   Array<SigEntry>* extended_sig() const {
 233     return *((Array<SigEntry>**)adr_extended_sig());
 234   }
 235   Array<VMRegPair>* return_regs() const {
 236     return *((Array<VMRegPair>**)adr_return_regs());
 237   }
 238   bool is_scalarizable() const;
 239   bool can_be_returned_as_fields() const;
 240   void save_oop_fields(const RegisterMap& map, GrowableArray<Handle>& handles) const;
 241   void restore_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const;
 242   oop realloc_result(const RegisterMap& reg_map, const GrowableArray<Handle>& handles, TRAPS);


< prev index next >