[4/2/14, 6:29:26 AM] Tom Rodriguez: The implicit null check is in the wrong place. [4/2/14, 6:29:29 AM] Tom Rodriguez: diff -r f83404938588 -r 1b96d1a74514 src/cpu/x86/vm/c1_LIRAssembler_x86.cpp --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Apr 01 15:49:13 2014 -0700 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Apr 01 19:45:34 2014 -0700 @@ -800,7 +800,13 @@ if (UseCompressedOops && !wide) { __ movl(as_Address(addr), (int32_t)NULL_WORD); } else { +#ifdef _LP64 + __ xorptr(r10, r10); + null_check_here = code_offset(); + __ movptr(as_Address(addr), r10); +#else __ movptr(as_Address(addr), NULL_WORD); +#endif } } else { if (is_literal_address(addr)) {