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