------- Comment #7 from jakub at gcc dot gnu dot org 2005-12-20 15:40 ------- The problem is regrename pass. replace_oldest_value_reg called indirectly from copyprop_hardreg_forward doesn't validate the change, so if both old and new registers are in the same class, but only the old one is valid (as in this case, old reg is r9, and r9 * 2 is valid address_operand, but new reg is rsp and rsp * 2 is not a valid address_oprand).
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25005