http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46179
--- Comment #5 from Finn Thain <fthain at telegraphics dot com.au> 2010-10-27 13:28:01 UTC --- > The invalid address is generated by output_move_double. I have to say it, the .md files I looked at are hands-down the most complex and baroque code I've ever seen. So I don't understand them. But, that's where output_move_double gets called. And apparently, somehow, ColdFire (and 68000) avoid this issue... What's the solution? Should I somehow find a test case that breaks on ColdFire so that Maxim gets to fix this? (Just kidding ;-) Or maybe have output_move_double call a new routine that does the same reshuffling that m68k_final_prescan_insn does -- a wrapper around the *handle_movsi invocation. Or is that going to be too expensive?