[Bug middle-end/49721] convert_memory_address_addr_space may generate invalid new insns

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 30 02:17:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49721

--- Comment #30 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #29)
> This is related to PR 55142.

The problem I reported is worked around in the i386 backend though:
(insn:TI 19 18 22 3 (set (mem:SI (plus:DI (reg/f:DI 0 ax [94])
                (const_int -1073742592 [0xffffffffbffffd00])) [2 *_9+0 S4 A32])
        (reg:SI 1 dx [orig:91 d ] [91])) t1234.c:5 90 {*movsi_internal}
     (expr_list:REG_DEAD (reg:SI 1 dx [orig:91 d ] [91])
        (expr_list:REG_DEAD (reg/f:DI 0 ax [94])
            (nil))))

Produces:
    movl    %edx, -1073742592(%eax)

We cannot work around this in the AARCH64 back-end since we don't have
instruction which does memory addresses in 32bit.



More information about the Gcc-bugs mailing list