< 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 >