LEGITIMIZE_RELOAD_ADDRESS (was PowerPC illegal displacement generation )

David Edelsohn dje@watson.ibm.com
Thu Jan 21 16:13:00 GMT 1999


	I thought I sent out the additional information, but it does not
look like it was delivered.  The original testcase was sent earlier by Dan
Jacobowitz.

	The relevant pieces from dump files, debug_reload, and
LEGITIMIZE_RELOAD_ADDRESS are appended.

David


Before reload:

(insn 61 126 161 (set (reg:DI 90)
        (reg:DI 90)) 425 {*movdi_32} (insn_list 58 (nil))
    (insn_list:REG_RETVAL 59 (expr_list:REG_EQUAL (and:DI (reg/v:DI 86)
                (const_int 255))
            (nil))))

After reload:

(insn 355 331 358 (set (reg:SI 9 r9)
        (plus:SI (reg:SI 31 r31)
            (const_int -25408))) 52 {*addsi3_internal1} (nil)
    (nil))

(insn 358 355 354 (set (reg:DI 9 r9)
        (mem:DI (plus:SI (reg:SI 9 r9)
                (const_int 65536)))) -1 (nil)
    (nil))

(insn 354 358 61 (set (reg:SI 13 r13)
        (plus:SI (reg:SI 31 r31)
            (const_int -25408))) 52 {*addsi3_internal1} (nil)
    (nil))

(insn:HI 61 354 161 (set (mem:DI (plus:SI (reg:SI 13 r13)
                (const_int 65536)))
        (reg:DI 9 r9)) 425 {*movdi_32} (insn_list 58 (nil))
    (insn_list:REG_RETVAL 59 (expr_list:REG_EQUAL (and:DI (reg/v:DI 86)
                (const_int 255))
            (nil))))

-----
(gdb) p debug_reload()
Reload 0: reload_in (SI) = (plus:SI (reg:SI 31 r31)
                                                    (const_int -25408))
	BASE_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0), nongroup
	reload_in_reg: (plus:SI (reg:SI 31 r31)
                                                    (const_int -25408))
	reload_reg_rtx: (reg:SI 13 r13)
Reload 1: reload_in (SI) = (plus:SI (reg:SI 31 r31)
                                                    (const_int -25408))
	BASE_REGS, RELOAD_FOR_INPUT_ADDRESS (opnum = 1)
	reload_in_reg: (plus:SI (reg:SI 31 r31)
                                                    (const_int -25408))
	reload_reg_rtx: (reg:SI 9 r9)
Reload 2: reload_in (DI) = (mem:DI (plus:SI (plus:SI (reg:SI 31 r31)
                                                            (const_int -25408))
                                                        (const_int 65536)))
	GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1)
	reload_in_reg: (mem:DI (plus:SI (plus:SI (reg:SI 31 r31)
                                                            (const_int -25408))
                                                        (const_int 65536)))
	reload_reg_rtx: (reg:DI 9 r9)

"ad" before LEGITIMIZE_RELOAD_ADDRESS:

(plus:SI (reg:SI 31 r31)
    (const_int 40128))

"ad" after LEGITIMIZE_RELOAD_ADDRESS:

(plus:SI (plus:SI (reg:SI 31 r31)
        (const_int 65536))
    (const_int -25408))




More information about the Gcc-bugs mailing list