1237 } else { |
1237 } else { |
1238 stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception); |
1238 stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception); |
1239 } |
1239 } |
1240 LIR_Opr reg = rlock_result(x); |
1240 LIR_Opr reg = rlock_result(x); |
1241 LIR_Opr tmp3 = LIR_OprFact::illegalOpr; |
1241 LIR_Opr tmp3 = LIR_OprFact::illegalOpr; |
1242 if (!x->klass()->is_loaded() || UseCompressedKlassPointers) { |
1242 if (!x->klass()->is_loaded() || UseCompressedClassPointers) { |
1243 tmp3 = new_register(objectType); |
1243 tmp3 = new_register(objectType); |
1244 } |
1244 } |
1245 __ checkcast(reg, obj.result(), x->klass(), |
1245 __ checkcast(reg, obj.result(), x->klass(), |
1246 new_register(objectType), new_register(objectType), tmp3, |
1246 new_register(objectType), new_register(objectType), tmp3, |
1247 x->direct_compare(), info_for_exception, patching_info, stub, |
1247 x->direct_compare(), info_for_exception, patching_info, stub, |
1259 // must do this before locking the destination register as an oop register |
1259 // must do this before locking the destination register as an oop register |
1260 patching_info = state_for(x, x->state_before()); |
1260 patching_info = state_for(x, x->state_before()); |
1261 } |
1261 } |
1262 obj.load_item(); |
1262 obj.load_item(); |
1263 LIR_Opr tmp3 = LIR_OprFact::illegalOpr; |
1263 LIR_Opr tmp3 = LIR_OprFact::illegalOpr; |
1264 if (!x->klass()->is_loaded() || UseCompressedKlassPointers) { |
1264 if (!x->klass()->is_loaded() || UseCompressedClassPointers) { |
1265 tmp3 = new_register(objectType); |
1265 tmp3 = new_register(objectType); |
1266 } |
1266 } |
1267 __ instanceof(reg, obj.result(), x->klass(), |
1267 __ instanceof(reg, obj.result(), x->klass(), |
1268 new_register(objectType), new_register(objectType), tmp3, |
1268 new_register(objectType), new_register(objectType), tmp3, |
1269 x->direct_compare(), patching_info, x->profiled_method(), x->profiled_bci()); |
1269 x->direct_compare(), patching_info, x->profiled_method(), x->profiled_bci()); |