On Fri, 11 Nov 2022 20:08:27 GMT, Volodymyr Paprotski <d...@openjdk.org> wrote:

>> Right, `addq` instructions are x64-specific. I was confused because 
>> `assembler_x86.hpp` doesn't declare them as such which is a bug.
>
> I am mystified at how it actually gets removed from the `assembler_x86.o` 
> object on 32-bit.. The only reliable/portable way _would_ be with `#ifdef` 
> but its not there.. so.. code-generation? `sed`-like preprocessing? Can one 
> edit object files after the gcc ran? The build must be doing something 
> clever!! Haven't seen it yet.. 
> 
> Whatever the trick is, `assembler_x86.hpp` gets it, but not 
> `macroAssembler_x86.hpp`.
> 
> If it doesn't ring any bells, maybe I will spend some more time looking at 
> the traces, maybe can figure out what the build script is doing to remove the 
> symbol.

It's not specific to `andq`: there's a huge `#ifdef` block around the 
definitions in `assembler_x86.hpp` (lines 12201 - 13773; and there's even a 
nested `#ifdef _LP64` (lines 13515-13585)!) , but declarations aren't guarded 
by `#ifdef _LP64`.

-------------

PR: https://git.openjdk.org/jdk/pull/10582

Reply via email to