< prev index next >
src/hotspot/share/ci/ciStreams.cpp
Print this page
@@ -169,10 +169,11 @@
case Bytecodes::_checkcast:
case Bytecodes::_instanceof:
case Bytecodes::_anewarray:
case Bytecodes::_multianewarray:
case Bytecodes::_new:
+ case Bytecodes::_defaultvalue:
case Bytecodes::_newarray:
return get_index_u2();
default:
ShouldNotReachHere();
return 0;
@@ -189,10 +190,20 @@
constantPoolHandle cpool(_method->get_Method()->constants());
return CURRENT_ENV->get_klass_by_index(cpool, get_klass_index(), will_link, _holder);
}
// ------------------------------------------------------------------
+// ciBytecodeStream::is_klass_never_null
+//
+// Get information about nullability from the constant pool.
+bool ciBytecodeStream::is_klass_never_null() const {
+ VM_ENTRY_MARK;
+ constantPoolHandle cpool(_method->get_Method()->constants());
+ return CURRENT_ENV->is_klass_never_null(cpool, get_klass_index());
+}
+
+// ------------------------------------------------------------------
// ciBytecodeStream::get_constant_raw_index
//
// If this bytecode is one of the ldc variants, get the index of the
// referenced constant.
int ciBytecodeStream::get_constant_raw_index() const {
@@ -257,11 +268,12 @@
// index of the referenced field.
int ciBytecodeStream::get_field_index() {
assert(cur_bc() == Bytecodes::_getfield ||
cur_bc() == Bytecodes::_putfield ||
cur_bc() == Bytecodes::_getstatic ||
- cur_bc() == Bytecodes::_putstatic, "wrong bc");
+ cur_bc() == Bytecodes::_putstatic ||
+ cur_bc() == Bytecodes::_withfield, "wrong bc");
return get_index_u2_cpcache();
}
// ------------------------------------------------------------------
< prev index next >