hotspot: problem with bitwise rotation on PowerLE
Alexander Smundak
asmundak at google.com
Tue May 12 04:06:10 UTC 2015
Looking into this. Sorry for the late response, we were moved into a
different office over the weekend.
On Fri, May 8, 2015 at 1:01 PM, Jan S Rellermeyer
<rellermeyer at us.ibm.com> wrote:
> I am helping people in IBM who have encountered a hotspot bug that surfaces
> when using bitwise rotations (such as through Integer.rotateRight). I have
> attached a small test program that illustrates the problem. When running
> this on Power LE (I don't think that anybody tried on BE, though) the
> results of the hash function are incorrect.
>
> The bug goes away when disabling inlining. After digging through the
> generated code I found out that it contained some suspicious fnmadd
> instructions where you would rather expect some kind of left rotate. I could
> track down that the bug was caused by the immediate value for the right
> shift constant of what should be a rlwinm node to be negative and thereby
> bleeding into the opcode (which unfortunately still created a valid Power
> instruction, namely the fnmadd). Running with a fastdebug build causes an
> assertion to fail.
>
> The attached patch does fix the problem and so does an alternative patch
> that replaces the URshift with a UShift but I am not entirely sure if this
> really fixes the root cause or rather just prevents the rotlI instruction
> from being matched by the ReduceInst.
>
> --Jan.
>
>
> Dr. Jan S. Rellermeyer
> IBM Research
> RSM - Austin Research Lab
> rellermeyer_at_us.ibm.com
> The University of Texas at Austin
> Adjunct Assistant Professor
> jrellerm_at_cs.utexas.edu
>
> (See attached file: hash.java)(See attached file: rotl.patch)
More information about the ppc-aix-port-dev
mailing list