diff -r a932f331ef90 -r c393f046f4c5 src/cpu/x86/vm/c1_LIRGenerator_x86.cpp --- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Tue Oct 12 02:21:06 2010 -0700 +++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Tue Oct 12 23:51:20 2010 -0700 @@ -765,7 +765,7 @@ ShouldNotReachHere(); } - LIR_Opr addr = new_pointer_register(); + LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register(); LIR_Address* a; if(offset.result()->is_constant()) { a = new LIR_Address(obj.result(),