49 ciValueKlass(KlassHandle h_k) : ciInstanceKlass(h_k), _field_index_map(NULL) {
50 assert(is_final(), "ValueKlass must be final");
51 };
52
53 int compute_field_index_map();
54
55 public:
56 bool is_valuetype() const { return true; }
57
58 // Value type fields
59 int field_count();
60 int field_size();
61 int flattened_field_count() {
62 return nof_nonstatic_fields();
63 }
64 int field_index_by_offset(int offset);
65 int field_offset_by_index(int index);
66 ciType* field_type_by_index(int index);
67 int first_field_offset() const;
68
69 int extra_value_args();
70 };
71
72 #endif // SHARE_VM_CI_CIVALUEKLASS_HPP
|
49 ciValueKlass(KlassHandle h_k) : ciInstanceKlass(h_k), _field_index_map(NULL) {
50 assert(is_final(), "ValueKlass must be final");
51 };
52
53 int compute_field_index_map();
54
55 public:
56 bool is_valuetype() const { return true; }
57
58 // Value type fields
59 int field_count();
60 int field_size();
61 int flattened_field_count() {
62 return nof_nonstatic_fields();
63 }
64 int field_index_by_offset(int offset);
65 int field_offset_by_index(int index);
66 ciType* field_type_by_index(int index);
67 int first_field_offset() const;
68
69 int value_arg_slots();
70 };
71
72 #endif // SHARE_VM_CI_CIVALUEKLASS_HPP
|