On Tue, Jul 19, 2011 at 06:26:33PM +0200, Uros Bizjak wrote: > Sometimes, the compiler is really creative in inventing instructions: > > (insn 47 46 49 7 (set (reg:SI 68 [ D.1686 ]) > (subreg:SI (plus:SF (reg:SF 159 [ D.1685 ]) > (reg:SF 159 [ D.1685 ])) 0)) omp_atomic1.f90:17 247 {*lea_2} > (expr_list:REG_DEAD (reg:SF 159 [ D.1685 ]) > (nil))) > > Really funny.
That's the job of combiner to try all kinds of stuff and it is the responsibility of the backend to reject those. I think it would be better to get back to testing Pmode in the legitimate address hook, perhaps allowing ptr_mode too in addition to Pmode (which for -m32/-m64 won't mean any change, just for -mx32). Jakub