< prev index next >

src/hotspot/share/oops/valueKlass.hpp

Print this page

        

*** 114,123 **** --- 114,124 ---- Klass* array_klass_impl(bool or_null, TRAPS); public: // Type testing bool is_value_slow() const { return true; } + bool is__Value() const { return (this == SystemDictionary::___Value_klass()); } // Casting from Klass* static ValueKlass* cast(Klass* k) { assert(k->is_value(), "cast to ValueKlass"); return (ValueKlass*) k;
*** 206,227 **** inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi); // calling convention support void initialize_calling_convention(); Array<SigEntry>* extended_sig() const { ! assert(this != SystemDictionary::___Value_klass(), "make no sense for __Value"); return *((Array<SigEntry>**)adr_extended_sig()); } Array<VMRegPair>* return_regs() const { ! assert(this != SystemDictionary::___Value_klass(), "make no sense for __Value"); return *((Array<VMRegPair>**)adr_return_regs()); } void save_oop_fields(const RegisterMap& map, GrowableArray<Handle>& handles) const; - bool save_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const; void restore_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const; oop realloc_result(const RegisterMap& reg_map, const GrowableArray<Handle>& handles, bool buffered, TRAPS); ! static ValueKlass* returned_value_type(const RegisterMap& reg_map); // pack and unpack handlers. Need to be loadable from generated code // so at a fixed offset from the base of the klass pointer. static ByteSize pack_handler_offset() { return in_ByteSize(InstanceKlass::header_size() * wordSize); --- 207,228 ---- inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi); // calling convention support void initialize_calling_convention(); Array<SigEntry>* extended_sig() const { ! assert(!is__Value(), "make no sense for __Value"); return *((Array<SigEntry>**)adr_extended_sig()); } Array<VMRegPair>* return_regs() const { ! assert(!is__Value(), "make no sense for __Value"); return *((Array<VMRegPair>**)adr_return_regs()); } + bool can_be_returned_as_fields() const; void save_oop_fields(const RegisterMap& map, GrowableArray<Handle>& handles) const; void restore_oop_results(RegisterMap& map, GrowableArray<Handle>& handles) const; oop realloc_result(const RegisterMap& reg_map, const GrowableArray<Handle>& handles, bool buffered, TRAPS); ! static ValueKlass* returned_value_klass(const RegisterMap& reg_map); // pack and unpack handlers. Need to be loadable from generated code // so at a fixed offset from the base of the klass pointer. static ByteSize pack_handler_offset() { return in_ByteSize(InstanceKlass::header_size() * wordSize);
< prev index next >