RFR(XS): 8148353: [linux-sparc] Crash in libawt.so on Linux SPARC
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Feb 23 21:32:10 UTC 2016
Code in sharedRuntime_sparc.cpp looks fine but I am worry about CCallingConventionRequiresIntsAsLongs change. You get
additional slots on stack which is not expected on sparc:
if (CCallingConventionRequiresIntsAsLongs && f->isa_int()) {
fields[cnt++] = TypeLong::LONG;
fields[cnt] = Type::HALF; // Must add an additional half for a long.
I found next text which says that integer values takes one stack slot only (but it does requires sign extension to 64 bits):
https://docs.oracle.com/cd/E26502_01/html/E28387/gentextid-2734.html#scrolltoc
Thanks,
Vladimir
On 2/23/16 8:28 AM, Roland Westrelin wrote:
> Another webrev because using L5 is not necessary when the argument is moved from register to register:
>
> http://cr.openjdk.java.net/~roland/8148353/webrev.02/
>
> Roland.
>
More information about the hotspot-compiler-dev
mailing list