RFR(XS): 8148353: [linux-sparc] Crash in libawt.so on Linux SPARC
vladimir.kozlov at oracle.com
Mon Feb 22 18:18:43 UTC 2016
Use macroassembler instruction signx() for sign extension. Otherwise it
Do you know where move32_64() is called from in this case? Compiled code
should clean upper bits for int arguments.
On 2/22/16 2:05 AM, Roland Westrelin wrote:
> Native code is passed an int (in a 64 bit register) which has some bits set in the upper 32 bit half. The native code uses that value for an address computation. That results in a wrong memory access. From a few experiments with code generated by gcc, it seems it expects values to be clean on function entry. The fix cleans the 32 bit value before the native call.
More information about the hotspot-compiler-dev