1861 Bytecode_loadconstant ldc(method(), bci); |
1861 Bytecode_loadconstant ldc(method(), bci); |
1862 ConstantPool* cp = method()->constants(); |
1862 ConstantPool* cp = method()->constants(); |
1863 constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references |
1863 constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references |
1864 BasicType bt = ldc.result_type(); |
1864 BasicType bt = ldc.result_type(); |
1865 CellTypeState cts; |
1865 CellTypeState cts; |
1866 if (tag.is_klass() || |
1866 if (tag.basic_type() == T_OBJECT) { |
1867 tag.is_unresolved_klass() || |
1867 assert(!tag.is_string_index() && !tag.is_klass_index(), "Unexpected index tag"); |
1868 tag.is_string() || |
|
1869 tag.is_method_handle() || |
|
1870 tag.is_method_type()) { |
|
1871 assert(bt == T_OBJECT, "Guard is incorrect"); |
1868 assert(bt == T_OBJECT, "Guard is incorrect"); |
1872 cts = CellTypeState::make_line_ref(bci); |
1869 cts = CellTypeState::make_line_ref(bci); |
1873 } else { |
1870 } else { |
1874 assert(bt != T_OBJECT, "Guard is incorrect"); |
1871 assert(bt != T_OBJECT, "Guard is incorrect"); |
1875 cts = valCTS; |
1872 cts = valCTS; |