[9] RFR (XS): loadUB2L_immI8 & loadUS2L_immI16 rules don't match some 8-bit/16-bit masks

Roland Westrelin roland.westrelin at oracle.com
Fri May 22 14:57:18 UTC 2015


> http://cr.openjdk.java.net/~vlivanov/8001622/webrev.00
> https://bugs.openjdk.java.net/browse/JDK-8001622
> 
> Mask in loadUB2L_immI8 & loadUS2L_immI16 can be relaxed from immI8/immI16 to immI, since zero-extending move is used.

The change on sparc doesn’t look good:
__ and3($dst$$Register, $mask$$constant, $dst$$Register);

the and instruction cannot encode arbitrary large integer constants.

Isn’t the root of the problem that we want an unsigned 8 bit integer and not a signed one?

Roland.


More information about the hotspot-compiler-dev mailing list