RFR: 8058255: Native jbyte Atomic::cmpxchg for supported x86 platforms

Erik Österlund erik.osterlund at lnu.se
Thu Sep 11 21:48:43 UTC 2014


Hi,

These changes aim at replacing the awkward old jbyte Atomic::cmpxchg implementation for all the supported x86 platforms. It previously emulated the behaviour of cmpxchgb using a loop of cmpxchgl and some dynamic alignment of the destination address.

This code is called by remembered sets to manipulate card entries.

The implementation has now been replaced with a bunch of assembly, appropriate for all platforms. Yes, for windows too.

Implementations include:
bsd x86/x86_64: inline asm
linux x86/x86_64: inline asm
solaris x86/x86_64: .il files
windows x86_64 without GNU source: stubGenerator and manual code emission and hence including new Assembler::cmpxchgb support
Windows x86 + x86_64 with GNU source: inline asm

Bug: https://bugs.openjdk.java.net/browse/JDK-8058255

Webrev: http://cr.openjdk.java.net/~jwilhelm/8058255/webrev/

Improvements can be made for other architectures can as well, but this should be a good start.

/Erik


More information about the hotspot-dev mailing list