RFR: 8256438: AArch64: Implement match rules with ROR shift register value

Andrew Haley aph at openjdk.java.net
Thu Jan 28 14:29:43 UTC 2021


On Thu, 28 Jan 2021 13:29:59 GMT, Eric Liu <github.com+10482586+theRealELiu at openjdk.org> wrote:

> > An oddity. For rotations we have:
> > ``` match(Set dst (AndI src1 (XorI(RotateRight src2 src3) src4))); ```
> > but for all other shifts we have:
> > ``` match(Set dst (AndL src1 (XorL(RShiftL src2 src3) src4))); ```
> > That is to say, the other shifts have a type suffix. This doesn't look
> > right. Do you know what is going on?
> 
> For rotation node, they have an extra field to identify the type, maybe this could save some code size... And I didn't use 'predicate' to check that because middle-end could guarantee Xor's input type was correct.

Ok, I see. That's very ugly, but it's not your fault.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1858


More information about the hotspot-compiler-dev mailing list