Reloads broken on VAX. (after sunday)
Matt Thomas
matt@3am-software.com
Tue Oct 1 23:44:00 GMT 2002
When compiling libf2c/libI77/backspace.c, the following two insn's are
incorrectly merged.
(insn 3 523 4 0 0x0 (set (reg/v/f:SI 22)
(mem/f:SI (plus:SI (reg/f:SI 12 %ap)
(const_int 4 [0x4])) [5 a+0 S4 A32])) 16 {movsi} (nil)
(expr_list:REG_EQUIV (mem/f:SI (plus:SI (reg/f:SI 12 %ap)
(const_int 4 [0x4])) [5 a+0 S4 A32])
(nil)))
(insn 13 12 14 0 0x484455ac (set (reg:SI 153)
(mem/s:SI (plus:SI (reg/v/f:SI 22)
(const_int 4 [0x4])) [4 <variable>.aunit+0 S4 A32])) 16
{movsi}
Get merged to (in postreload):
(insn 13 12 14 0 0x484455ac (set (reg:SI 1 %r1 [153])
(mem/s:SI (plus:SI (mem/f:SI (plus:SI (reg/f:SI 12 %ap)
(const_int 4 [0x4])) [5 a+0 S4 A32])
(const_int 4 [0x4])) [4 <variable>.aunit+0 S4 A32])) 16
{movsi}
Now this was never given to GO_IF_LEGITIMATE_ADDRESS to approve but was
given to print_operand_address (which died on it). This is not related to
the VAX ELF changes since I've been running with them.
I see similar breakage compiling unwind-dw2.c:
(plus:SI (mem:SI (plus:SI (reg/f:SI 13 %fp)
(const_int -24 [0xffffffe8])) [28 unused_rs S4 A8])
(const_int 136 [0x88]))
/export/toolchain/gcc/gcc/unwind-dw2.c: In function `execute_cfa_program':
/export/toolchain/gcc/gcc/unwind-dw2.c:892: internal compiler error: in
print_operand_address, at config/vax/vax.c:357
gcc version 3.3 20020929 (experimental) was working properly
gcc version 3.3 20021001 (experimental) is broken.
--
Matt Thomas Internet: matt@3am-software.com
3am Software Foundry WWW URL: http://www.3am-software.com/bio/matt/
Cupertino, CA Disclaimer: I avow all knowledge of this message
More information about the Gcc-bugs
mailing list