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

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

Hi Vladimir,
Good point, I should have looked earlier at:
... except Linux target there is no official support for 32-bits?

I'm asking since within a readme:
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.


-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at] 
Sent: Monday, August 31, 2015 4:34 PM
To: Wojtowicz, Tomasz; 'hotspot-compiler-dev at'
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.


On 8/31/15 10:57 AM, Wojtowicz, Tomasz wrote:
> Hi,
> Shouldn't  src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp
> 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