comparison src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @ 6848:8e47bac5643a

7054512: Compress class pointers after perm gen removal Summary: support of compress class pointers in the compilers. Reviewed-by: kvn, twisti
author roland
date Tue, 09 Oct 2012 10:11:38 +0200
parents 7eca5de9e0b6
children 46f6f063b272
comparison
equal deleted inserted replaced
6847:65d07d9ee446 6848:8e47bac5643a
1164 } else { 1164 } else {
1165 stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception); 1165 stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
1166 } 1166 }
1167 LIR_Opr reg = rlock_result(x); 1167 LIR_Opr reg = rlock_result(x);
1168 LIR_Opr tmp3 = LIR_OprFact::illegalOpr; 1168 LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
1169 if (!x->klass()->is_loaded() || UseCompressedOops) { 1169 if (!x->klass()->is_loaded() || UseCompressedKlassPointers) {
1170 tmp3 = new_register(objectType); 1170 tmp3 = new_register(objectType);
1171 } 1171 }
1172 __ checkcast(reg, obj.result(), x->klass(), 1172 __ checkcast(reg, obj.result(), x->klass(),
1173 new_register(objectType), new_register(objectType), tmp3, 1173 new_register(objectType), new_register(objectType), tmp3,
1174 x->direct_compare(), info_for_exception, patching_info, stub, 1174 x->direct_compare(), info_for_exception, patching_info, stub,
1186 // must do this before locking the destination register as an oop register 1186 // must do this before locking the destination register as an oop register
1187 patching_info = state_for(x, x->state_before()); 1187 patching_info = state_for(x, x->state_before());
1188 } 1188 }
1189 obj.load_item(); 1189 obj.load_item();
1190 LIR_Opr tmp3 = LIR_OprFact::illegalOpr; 1190 LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
1191 if (!x->klass()->is_loaded() || UseCompressedOops) { 1191 if (!x->klass()->is_loaded() || UseCompressedKlassPointers) {
1192 tmp3 = new_register(objectType); 1192 tmp3 = new_register(objectType);
1193 } 1193 }
1194 __ instanceof(reg, obj.result(), x->klass(), 1194 __ instanceof(reg, obj.result(), x->klass(),
1195 new_register(objectType), new_register(objectType), tmp3, 1195 new_register(objectType), new_register(objectType), tmp3,
1196 x->direct_compare(), patching_info, x->profiled_method(), x->profiled_bci()); 1196 x->direct_compare(), patching_info, x->profiled_method(), x->profiled_bci());