------- Additional Comments From rearnsha at gcc dot gnu dot org 2005-05-12 11:36 ------- The ARM ARM says that
STR Rd, [Rn], #4 and STR Rd, [Rn, #4]! are unpredictable if Rd == Rn. That is, the auto-inc side effect is permitted to take place before Rd is read. There's currently no way for a back-end to describe that an auto-inc operation might be an early-clobber. The obvious '&<>' in the constraint doesn't work, causing an abort in find_reloads(). This bug isn't really a regression (the limitation has always been there), but the vagaries of register allocation means that it is only recently that it's started doing this (either that, or the assembler has only recently started whining about it :-). -- What |Removed |Added ---------------------------------------------------------------------------- CC| |rearnsha at gcc dot gnu dot | |org Component|target |rtl-optimization Last reconfirmed|2005-04-12 17:08:16 |2005-05-12 11:36:06 date| | Summary|[4.0/4.1 Regression] |[4.0/4.1 Regression] Can't |Compiler-generated code |describe an early-clobber by |produces an assembler |an auto-inc |warning | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20972