RFR: 8173472: AArch64: C1 comparisons with null only use 32-bit instructions

Stuart Monteith stuart.monteith at linaro.org
Fri Jan 27 11:17:03 UTC 2017


I'm probably missing some knowledge, but this code looks a little
inconsistent from a superficial reading of the code:

1936       case T_ADDRESS:
1937         imm = opr2->as_constant_ptr()->as_jint();
1938         break;

should this be handled as_jlong() or should it be setting "is_32bit = true" ?

BR,
   Stuart


On 27 January 2017 at 09:53, Andrew Haley <aph at redhat.com> wrote:
> Yesterday I found an absolute doozy of a bug: we're only comparing 32
> bits of an address with null.  So a couple of times in a billion, if
> the heap is in the right place and the moon is in the right phase, a
> null pointer comparison will result in a false positive.
>
> http://cr.openjdk.java.net/~aph/8173472-1/
>
> Andrew.
>


More information about the hotspot-dev mailing list