218 int get_int_table( int index ) const {
219 return Bytes::get_Java_u4((address)&_table_base[index]); }
220
221 // For tableswitch - get length of offset part
222 int get_tableswitch_length() { return get_int_table(2)-get_int_table(1)+1; }
223
224 int get_dest_table( int index ) const {
225 return cur_bci() + get_int_table(index); }
226
227 // --- Constant pool access ---
228 int get_constant_raw_index() const;
229 int get_constant_pool_index() const;
230 int get_constant_cache_index() const;
231 int get_field_index();
232 int get_method_index();
233
234 // If this bytecode is a new, newarray, multianewarray, instanceof,
235 // or checkcast, get the referenced klass.
236 ciKlass* get_klass(bool& will_link);
237 int get_klass_index() const;
238 bool get_never_null() const;
239
240 // If this bytecode is one of the ldc variants, get the referenced
241 // constant. Do not attempt to resolve it, since that would require
242 // execution of Java code. If it is not resolved, return an unloaded
243 // object (ciConstant.as_object()->is_loaded() == false).
244 ciConstant get_constant();
245 constantTag get_constant_pool_tag(int index) const;
246
247 // True if the klass-using bytecode points to an unresolved klass
248 bool is_unresolved_klass() const {
249 constantTag tag = get_constant_pool_tag(get_klass_index());
250 return tag.is_unresolved_klass();
251 }
252
253 // If this bytecode is one of get_field, get_static, put_field,
254 // or put_static, get the referenced field.
255 ciField* get_field(bool& will_link);
256
257 ciInstanceKlass* get_declared_field_holder();
258 int get_field_holder_index();
|
218 int get_int_table( int index ) const {
219 return Bytes::get_Java_u4((address)&_table_base[index]); }
220
221 // For tableswitch - get length of offset part
222 int get_tableswitch_length() { return get_int_table(2)-get_int_table(1)+1; }
223
224 int get_dest_table( int index ) const {
225 return cur_bci() + get_int_table(index); }
226
227 // --- Constant pool access ---
228 int get_constant_raw_index() const;
229 int get_constant_pool_index() const;
230 int get_constant_cache_index() const;
231 int get_field_index();
232 int get_method_index();
233
234 // If this bytecode is a new, newarray, multianewarray, instanceof,
235 // or checkcast, get the referenced klass.
236 ciKlass* get_klass(bool& will_link);
237 int get_klass_index() const;
238 bool is_klass_never_null() const;
239
240 // If this bytecode is one of the ldc variants, get the referenced
241 // constant. Do not attempt to resolve it, since that would require
242 // execution of Java code. If it is not resolved, return an unloaded
243 // object (ciConstant.as_object()->is_loaded() == false).
244 ciConstant get_constant();
245 constantTag get_constant_pool_tag(int index) const;
246
247 // True if the klass-using bytecode points to an unresolved klass
248 bool is_unresolved_klass() const {
249 constantTag tag = get_constant_pool_tag(get_klass_index());
250 return tag.is_unresolved_klass();
251 }
252
253 // If this bytecode is one of get_field, get_static, put_field,
254 // or put_static, get the referenced field.
255 ciField* get_field(bool& will_link);
256
257 ciInstanceKlass* get_declared_field_holder();
258 int get_field_holder_index();
|