comparison src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @ 989:148e5441d916

6863023: need non-perm oops in code cache for JSR 292 Summary: Make a special root-list for those few nmethods which might contain non-perm oops. Reviewed-by: twisti, kvn, never, jmasa, ysr
author jrose
date Tue, 15 Sep 2009 21:53:47 -0700
parents ff1a29907b6c
children a1423fe86a18
comparison
equal deleted inserted replaced
987:00977607da34 989:148e5441d916
992 LIR_Opr tmp4 = reg; 992 LIR_Opr tmp4 = reg;
993 LIR_Opr klass_reg = FrameMap::rdx_oop_opr; 993 LIR_Opr klass_reg = FrameMap::rdx_oop_opr;
994 LIR_Opr len = length.result(); 994 LIR_Opr len = length.result();
995 BasicType elem_type = x->elt_type(); 995 BasicType elem_type = x->elt_type();
996 996
997 __ oop2reg(ciTypeArrayKlass::make(elem_type)->encoding(), klass_reg); 997 __ oop2reg(ciTypeArrayKlass::make(elem_type)->constant_encoding(), klass_reg);
998 998
999 CodeStub* slow_path = new NewTypeArrayStub(klass_reg, len, reg, info); 999 CodeStub* slow_path = new NewTypeArrayStub(klass_reg, len, reg, info);
1000 __ allocate_array(reg, len, tmp1, tmp2, tmp3, tmp4, elem_type, klass_reg, slow_path); 1000 __ allocate_array(reg, len, tmp1, tmp2, tmp3, tmp4, elem_type, klass_reg, slow_path);
1001 1001
1002 LIR_Opr result = rlock_result(x); 1002 LIR_Opr result = rlock_result(x);