124 inline void* field_addr_raw(int offset) const;
125
126 // Need this as public for garbage collection.
127 template <class T> inline T* obj_field_addr_raw(int offset) const;
128
129 // Standard compare function returns negative value if o1 < o2
130 // 0 if o1 == o2
131 // positive value if o1 > o2
132 inline static int compare(oop o1, oop o2) {
133 void* o1_addr = (void*)o1;
134 void* o2_addr = (void*)o2;
135 if (o1_addr < o2_addr) {
136 return -1;
137 } else if (o1_addr > o2_addr) {
138 return 1;
139 } else {
140 return 0;
141 }
142 }
143
144 // Access to fields in a instanceOop through these methods.
145 template <DecoratorSet decorator>
146 oop obj_field_access(int offset) const;
147 oop obj_field(int offset) const;
148 void obj_field_put(int offset, oop value);
149 void obj_field_put_raw(int offset, oop value);
150 void obj_field_put_volatile(int offset, oop value);
151
152 Metadata* metadata_field(int offset) const;
153 void metadata_field_put(int offset, Metadata* value);
154
155 Metadata* metadata_field_acquire(int offset) const;
156 void release_metadata_field_put(int offset, Metadata* value);
157
158 jbyte byte_field(int offset) const;
159 void byte_field_put(int offset, jbyte contents);
160
161 jchar char_field(int offset) const;
162 void char_field_put(int offset, jchar contents);
|
124 inline void* field_addr_raw(int offset) const;
125
126 // Need this as public for garbage collection.
127 template <class T> inline T* obj_field_addr_raw(int offset) const;
128
129 // Standard compare function returns negative value if o1 < o2
130 // 0 if o1 == o2
131 // positive value if o1 > o2
132 inline static int compare(oop o1, oop o2) {
133 void* o1_addr = (void*)o1;
134 void* o2_addr = (void*)o2;
135 if (o1_addr < o2_addr) {
136 return -1;
137 } else if (o1_addr > o2_addr) {
138 return 1;
139 } else {
140 return 0;
141 }
142 }
143
144 inline static bool equals(oop o1, oop o2) { return Access<>::equals(o1, o2); }
145
146 // Access to fields in a instanceOop through these methods.
147 template <DecoratorSet decorator>
148 oop obj_field_access(int offset) const;
149 oop obj_field(int offset) const;
150 void obj_field_put(int offset, oop value);
151 void obj_field_put_raw(int offset, oop value);
152 void obj_field_put_volatile(int offset, oop value);
153
154 Metadata* metadata_field(int offset) const;
155 void metadata_field_put(int offset, Metadata* value);
156
157 Metadata* metadata_field_acquire(int offset) const;
158 void release_metadata_field_put(int offset, Metadata* value);
159
160 jbyte byte_field(int offset) const;
161 void byte_field_put(int offset, jbyte contents);
162
163 jchar char_field(int offset) const;
164 void char_field_put(int offset, jchar contents);
|