RFR: 8173472: AArch64: C1 comparisons with null only use 32-bit instructions
Andrew Haley
aph at redhat.com
Fri Jan 27 13:36:45 UTC 2017
On 27/01/17 11:17, Stuart Monteith wrote:
> 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" ?
No. Oddly, as_jint() is used for addresses.
jint as_jint() const { type_check(T_INT, T_ADDRESS); return _value.get_jint(); }
I don't get it either, but if you look through the C1 source you'll
see that as_jint() is used consistently. Even here:
case T_ADDRESS: {
#ifdef _LP64
scope_values->append(new ConstantLongValue(c->as_jint()));
#else
scope_values->append(new ConstantIntValue(c->as_jint()));
#endif
return 1;
}
Andrew.
More information about the hotspot-dev
mailing list