97 98 void value_store(void* src, void* dst, bool dst_is_heap, bool dst_uninitialized) { 99 value_store(src, dst, nonstatic_field_size() << LogBytesPerHeapOop, dst_is_heap, dst_uninitialized); 100 } 101 102 // store the value of this klass contained with src into dst, raw data ptr 103 void value_store(void* src, void* dst, size_t raw_byte_size, bool dst_is_heap, bool dst_uninitialized); 104 105 106 oop derive_value_type_copy(Handle src, InstanceKlass* target_klass, TRAPS); 107 108 // GC support... 109 110 // oop iterate raw value type data pointer (where oop_addr may not be an oop, but backing/array-element) 111 template <bool nv, typename T, class OopClosureType> 112 inline void oop_iterate_specialized(const address oop_addr, OopClosureType* closure); 113 114 template <bool nv, typename T, class OopClosureType> 115 inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi); 116 117 }; 118 119 #endif /* SHARE_VM_OOPS_VALUEKLASS_HPP */ | 97 98 void value_store(void* src, void* dst, bool dst_is_heap, bool dst_uninitialized) { 99 value_store(src, dst, nonstatic_field_size() << LogBytesPerHeapOop, dst_is_heap, dst_uninitialized); 100 } 101 102 // store the value of this klass contained with src into dst, raw data ptr 103 void value_store(void* src, void* dst, size_t raw_byte_size, bool dst_is_heap, bool dst_uninitialized); 104 105 106 oop derive_value_type_copy(Handle src, InstanceKlass* target_klass, TRAPS); 107 108 // GC support... 109 110 // oop iterate raw value type data pointer (where oop_addr may not be an oop, but backing/array-element) 111 template <bool nv, typename T, class OopClosureType> 112 inline void oop_iterate_specialized(const address oop_addr, OopClosureType* closure); 113 114 template <bool nv, typename T, class OopClosureType> 115 inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi); 116 117 // calling convention support 118 GrowableArray<SigEntry> collect_fields(int base_off = 0) const; 119 GrowableArray<SigEntry> return_convention(VMRegPair*& regs, int& nb_fields) const; 120 void save_oop_fields(const GrowableArray<SigEntry>& sig_vk, RegisterMap& map, const VMRegPair* regs, GrowableArray<Handle>& handles, int nb_fields) const; 121 bool save_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const; 122 void restore_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const; 123 oop realloc_result(const GrowableArray<SigEntry>& sig_vk, const RegisterMap& reg_map, const VMRegPair* regs, const GrowableArray<Handle>& handles, int nb_fields, TRAPS); 124 static ValueKlass* returned_value_type(const RegisterMap& reg_map); 125 }; 126 127 #endif /* SHARE_VM_OOPS_VALUEKLASS_HPP */ |