This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch,AVR] Fix PR51050: Invalid RTL sharing of fp


This is fix for the RP. Is uses (reg:QI 28) instead of building SUBREG of frame
pointer.

Johann

	PR target/51050
	* config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
	(avr_prologue_setup_frame): Ditto.
Index: gcc/config/avr/avr.c
===================================================================
--- gcc/config/avr/avr.c	(revision 182327)
+++ gcc/config/avr/avr.c	(working copy)
@@ -994,7 +994,7 @@ avr_prologue_setup_frame (HOST_WIDE_INT
               /* The high byte (r29) does not change:
                  Prefer SUBI (1 cycle) over ABIW (2 cycles, same size).  */
 
-              my_fp = simplify_gen_subreg (QImode, fp, Pmode, 0);
+              my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
             }
 
           /************  Method 1: Adjust frame pointer  ************/
@@ -1292,7 +1292,7 @@ expand_epilogue (bool sibcall_p)
           /* The high byte (r29) does not change:
              Prefer SUBI (1 cycle) over SBIW (2 cycles).  */
                   
-          my_fp = simplify_gen_subreg (QImode, fp, Pmode, 0);
+          my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
         }
               
       /********** Method 1: Adjust fp register  **********/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]