src/share/vm/oops/generateOopMap.cpp

changeset 6187
00bcb186fc5a
parent 5241
f75faf51e8c4
child 6876
710a3c8b516e
child 9478
f3108e56b502
equal deleted inserted replaced
6175:62084ffe573b 6187:00bcb186fc5a
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;

mercurial