RFR: 8186166: Generalize Atomic::cmpxchg with templates

Andrew Haley aph at redhat.com
Sat Aug 19 16:18:43 UTC 2017

On 19/08/17 15:57, Kim Barrett wrote:
>> On Aug 19, 2017, at 3:57 AM, Andrew Haley <aph at redhat.com> wrote:
>> On 18/08/17 20:58, Kim Barrett wrote:
>>> BTW, the conversion technique presently used by the jmumble_cast suite
>>> is explicitly called out by gcc documentation as still being undefined
>>> behavior, even with the involvement of unions.
>> Umm, what?  Can you explain this a little more?  I'd have to search
>> for what jumble_cast might be.  The union trick is well defined by
>> GCC.
> jint_cast, jdouble_cast, &etc, in globalDefinitions.hpp around line
> 520 right now.  For example:
> typedef union { jfloat f; jint i; } FloatIntConv;
> jint jint_cast(jfloat x) { return ((FloatIntConv*)&x)->i; }
> That's *not* the union trick.

Indeed not, that certainly isn't supported.  Shame, it's so close...

Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

More information about the hotspot-dev mailing list