http://gcc.gnu.org/viewcvs?view=revision&revision=185043
This wrong code bug for __memx space was caused by a missing R22 in the register footprint of xload<mode>_A split. Johann PR target/52484 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint. Index: config/avr/avr.md =================================================================== --- config/avr/avr.md (revision 185031) +++ config/avr/avr.md (working copy) @@ -436,6 +436,7 @@ (define_insn_and_split "xload8_A" (define_insn_and_split "xload<mode>_A" [(set (match_operand:MOVMODE 0 "register_operand" "=r") (match_operand:MOVMODE 1 "memory_operand" "m")) + (clobber (reg:MOVMODE 22)) (clobber (reg:QI 21)) (clobber (reg:HI REG_Z))] "can_create_pseudo_p()