RFR: 8072483: AARCH64: aarch64.ad uses the wrong operand class for some operations

Andrew Haley aph at redhat.com
Thu Feb 5 10:32:25 UTC 2015

In a few instruction patterns we're using iReg<X> (all registers) rather
than iReg<X>NoSp (all general registers) for an output.  The difference
between these operand classes is the set of fixed registers such as
the frame pointer and the thread pointer.  This causes C2's register
allocator to try to use these registers, and predictably bad stuff

It's hard to find a reproducer for this bug because it only triggers
at times of very high register pressure and the code generated may not
even be visibly wrong.  However, it sometimes causes assertion



More information about the hotspot-dev mailing list