Andreas Schwab wrote:
>
> This breaks gcc.target/aarch64/reload-valid-spoff.c with -mabi=ilp32:

Indeed, there is a odd ILP32 bug that causes high/lo_sum to be generated
in SI mode in expand:

(insn 15 14 16 4 (set (reg:SI 125)
        (high:SI (symbol_ref/u:DI ("*.LC1") [flags 0x2]))) 
     (nil))
(insn 16 15 17 4 (set (reg:SI 124)
        (lo_sum:SI (reg:SI 125)
            (symbol_ref/u:DI ("*.LC1") [flags 0x2])))

Eventually this may end up as a 64-bit adrp, a 32-bit lo_sum and a load that
expects a 64-bit address...

I have a simple workaround to disable the symbol optimization in ILP32,
but I'm looking into fixing the underlying cause.

Wilco

Reply via email to