------- Comment #1 from jakub at gcc dot gnu dot org 2008-04-30 20:25 -------
This wierdo addressing was created by fwprop2, which replaced:
In insn 40, replacing
(mem/u/c/i:DI (plus:DI (reg/f:DI 129)
(const_int 8 [0x8])) [2 S8 A64])
with (mem/u/c/i:DI (plus:DI (reg:DI 2 2)
(const:DI (minus:DI (symbol_ref/u:DI ("*.LC1") [flags 0x2])
(const:DI (plus:DI (symbol_ref:DI ("*.LCTOC1"))
(const_int -8 [0xfffffffffffffff8])))))) [2 S8
A64])
where
(insn 21 20 39 4 t.c:5 (set (reg/f:DI 129)
(plus:DI (reg:DI 2 2)
(const:DI (minus:DI (symbol_ref/u:DI ("*.LC1") [flags 0x2])
(symbol_ref:DI ("*.LCTOC1")))))) 334 {*movdi_internal64}
(expr_list:REG_DEAD (reg:DI 2 2)
(expr_list:REG_EQUAL (symbol_ref/u:DI ("*.LC1") [flags 0x2])
(nil))))
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36090