assembler_solaris_x86.cpp uses r8-r11 for 32-bit compilation

Wojtowicz, Tomasz tomasz.wojtowicz at intel.com
Tue Sep 1 23:12:13 UTC 2015


Hi Vladimir,
Good point, I should have looked earlier at:
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms
... except Linux target there is no official support for 32-bits?

I'm asking since within a readme:
http://hg.openjdk.java.net/jdk9/jdk9/raw-file/tip/README-builds.html
they still mention x86 Windows (other things match).


As for Solaris x86 I just wanted to make sure that I'm not missing any target for testing my change with.

--
Tomek

-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] 
Sent: Monday, August 31, 2015 4:34 PM
To: Wojtowicz, Tomasz; 'hotspot-compiler-dev at openjdk.java.net'
Cc: David Holmes
Subject: Re: assembler_solaris_x86.cpp uses r8-r11 for 32-bit compilation

Hi, Tomek

Note that Oracle does not support 32-bit JDK(JVM) on Solaris since jdk8.
Why you need 32-bit JVM on Solaris?

As much as we want 8130212 changes be done for 32-bit too but it is not as simple as it looks. Putting #ifdef is not enough for 32-bit code works correctly. And it will rot anyway since we don't test it.

Regards,
Vladimir

On 8/31/15 10:57 AM, Wojtowicz, Tomasz wrote:
> Hi,
>
> Shouldn't  src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp
>
> http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/9df4555d2d7d/src/
> os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp
>
> void MacroAssembler::get_thread(Register thread) {
>
> be included (at least part) under #ifdef depending on bit width of a 
> compiled target?
>
> I see
>
>    push(r8);
>
>    push(r9);
>
>    push(r10);
>
>    push(r11);
>
> for registers which are not defined for 32-bit which is causing 
> compilation error and subsequent failure.
>
> --
>
> Thank you,
>
> Tomek
>


More information about the hotspot-compiler-dev mailing list