RFR(M): 8139258: PPC64LE: argument passing problem when passing 15 floats in native call
volker.simonis at gmail.com
Fri Nov 13 17:24:29 UTC 2015
On Fri, Nov 13, 2015 at 3:57 PM, Doerr, Martin <martin.doerr at sap.com> wrote:
> Hi Sasha,
> thank you very much for debugging the interpreter. The test passes as long as the method gets interpreted, now.
> However, I didn't get the right result when running with -Xcomp.
> I guess there's still something wrong with the native wrapper (generate_native_wrapper / float_move etc.) for PPC64LE.
> Btw. I think the defined(VM_LITTLE_ENDIAN) should be used. I'd simply change the code to
> #if defined(LINUX) && !defined(VM_LITTLE_ENDIAN)
> __ stfs(floatSlot, 4, arg_c);
> __ stfs(floatSlot, 0, arg_c);
That's good, but I'd add comment like:
#if defined(LINUX) && !defined(VM_LITTLE_ENDIAN)
__ stfs(floatSlot, 4, arg_c);
// This handles Linux/little-endian and AIX which is big-endian but
stores the floats in the
// most-significant bytes of a double while the Linux ABI places
them in the least-significant bytes.
__ stfs(floatSlot, 0, arg_c);
> Best regards and thanks again,
> -----Original Message-----
> From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On Behalf Of Alexander Smundak
> Sent: Freitag, 13. November 2015 00:37
> To: HotSpot Open Source Developers <hotspot-dev at openjdk.java.net>
> Subject: RFR(M): 8139258: PPC64LE: argument passing problem when passing 15 floats in native call
> Please review the patch fixing https://bugs.openjdk.java.net/browse/JDK-8139258.
> I have tested in on Linux running on ppc64le.
> I need a sponsor.
More information about the hotspot-dev