< prev index next >

src/hotspot/share/oops/resolvedFieldEntry.hpp

Print this page

115     volatile Bytecodes::Code c = (Bytecodes::Code)*code;
116     assert(c == 0 || c == new_code || new_code == 0, "update must be consistent");
117   #endif
118     Atomic::release_store(code, new_code);
119   }
120 
121   // Populate the strucutre with resolution information
122   void fill_in(InstanceKlass* klass, int offset, u2 index, u1 tos_state, u1 b1, u1 b2) {
123     _field_holder = klass;
124     _field_offset = offset;
125     _field_index = index;
126     _tos_state = tos_state;
127 
128     // These must be set after the other fields
129     set_bytecode(&_get_code, b1);
130     set_bytecode(&_put_code, b2);
131   }
132 
133   // CDS
134   void remove_unshareable_info();

135 
136   // Offsets
137   static ByteSize field_holder_offset() { return byte_offset_of(ResolvedFieldEntry, _field_holder); }
138   static ByteSize field_offset_offset() { return byte_offset_of(ResolvedFieldEntry, _field_offset); }
139   static ByteSize field_index_offset()  { return byte_offset_of(ResolvedFieldEntry, _field_index);  }
140   static ByteSize get_code_offset()     { return byte_offset_of(ResolvedFieldEntry, _get_code);     }
141   static ByteSize put_code_offset()     { return byte_offset_of(ResolvedFieldEntry, _put_code);     }
142   static ByteSize type_offset()         { return byte_offset_of(ResolvedFieldEntry, _tos_state);    }
143   static ByteSize flags_offset()        { return byte_offset_of(ResolvedFieldEntry, _flags);        }
144 
145 };
146 
147 #endif //SHARE_OOPS_RESOLVEDFIELDENTRY_HPP

115     volatile Bytecodes::Code c = (Bytecodes::Code)*code;
116     assert(c == 0 || c == new_code || new_code == 0, "update must be consistent");
117   #endif
118     Atomic::release_store(code, new_code);
119   }
120 
121   // Populate the strucutre with resolution information
122   void fill_in(InstanceKlass* klass, int offset, u2 index, u1 tos_state, u1 b1, u1 b2) {
123     _field_holder = klass;
124     _field_offset = offset;
125     _field_index = index;
126     _tos_state = tos_state;
127 
128     // These must be set after the other fields
129     set_bytecode(&_get_code, b1);
130     set_bytecode(&_put_code, b2);
131   }
132 
133   // CDS
134   void remove_unshareable_info();
135   void mark_and_relocate();
136 
137   // Offsets
138   static ByteSize field_holder_offset() { return byte_offset_of(ResolvedFieldEntry, _field_holder); }
139   static ByteSize field_offset_offset() { return byte_offset_of(ResolvedFieldEntry, _field_offset); }
140   static ByteSize field_index_offset()  { return byte_offset_of(ResolvedFieldEntry, _field_index);  }
141   static ByteSize get_code_offset()     { return byte_offset_of(ResolvedFieldEntry, _get_code);     }
142   static ByteSize put_code_offset()     { return byte_offset_of(ResolvedFieldEntry, _put_code);     }
143   static ByteSize type_offset()         { return byte_offset_of(ResolvedFieldEntry, _tos_state);    }
144   static ByteSize flags_offset()        { return byte_offset_of(ResolvedFieldEntry, _flags);        }
145 
146 };
147 
148 #endif //SHARE_OOPS_RESOLVEDFIELDENTRY_HPP
< prev index next >