]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X instead of X to avr_legitimize_r...
authorGeorg-Johann Lay <avr@gjlay.de>
Fri, 21 Oct 2011 15:46:32 +0000 (15:46 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Fri, 21 Oct 2011 15:46:32 +0000 (15:46 +0000)
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
instead of X to avr_legitimize_reload_address.
* config/avr/avr-protos.h (avr_legitimize_reload_address): Change
first argument's type from rtx to rtx*.
* config/avr/avr.c (avr_legitimize_reload_address): Ditto.
Pass PX to push_reload instead of &X.  Change log messages for
better distinction.

From-SVN: r180308

gcc/ChangeLog
gcc/config/avr/avr-protos.h
gcc/config/avr/avr.c
gcc/config/avr/avr.h

index c7a5e8f0f761ea130fc19b572f09ba4783a4fb22..9d3269f63220981f049535b0194bf76b782e0ba9 100644 (file)
@@ -1,3 +1,13 @@
+2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
+       instead of X to avr_legitimize_reload_address.
+       * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
+       first argument's type from rtx to rtx*.
+       * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
+       Pass PX to push_reload instead of &X.  Change log messages for
+       better distinction.
+
 2011-10-21  Roland Stigge  <stigge@antcom.de>
 
        PR translation/47064
index dd8ba3a33189f1309adff6c322f3173cd076237e..817169e39fef5302aabe7f7e7853b421723aac27 100644 (file)
@@ -110,7 +110,7 @@ extern void out_shift_with_cnt (const char *templ, rtx insn,
 extern reg_class_t avr_mode_code_base_reg_class (enum machine_mode, RTX_CODE, RTX_CODE);
 extern bool avr_regno_mode_code_ok_for_base_p (int, enum machine_mode, RTX_CODE, RTX_CODE);
 extern rtx avr_incoming_return_addr_rtx (void);
-extern rtx avr_legitimize_reload_address (rtx, enum machine_mode, int, int, int, int, rtx (*)(rtx,int));
+extern rtx avr_legitimize_reload_address (rtx*, enum machine_mode, int, int, int, int, rtx (*)(rtx,int));
 #endif /* RTX_CODE */
 
 #ifdef REAL_VALUE_TYPE
index 94bc30af3d90448aa736b2bb20791cbe2a5e2a00..1d4c32aa3400f0f425635ee25328a20eea14e3df 100644 (file)
@@ -1356,11 +1356,13 @@ avr_legitimize_address (rtx x, rtx oldx, enum machine_mode mode)
    than 63 bytes or for R++ or --R addressing.  */
 
 rtx
-avr_legitimize_reload_address (rtx x, enum machine_mode mode,
+avr_legitimize_reload_address (rtx *px, enum machine_mode mode,
                                int opnum, int type, int addr_type,
                                int ind_levels ATTRIBUTE_UNUSED,
                                rtx (*mk_memloc)(rtx,int))
 {
+  rtx x = *px;
+  
   if (avr_log.legitimize_reload_address)
     avr_edump ("\n%?:%m %r\n", mode, x);
   
@@ -1372,7 +1374,7 @@ avr_legitimize_reload_address (rtx x, enum machine_mode mode,
                    opnum, RELOAD_OTHER);
       
       if (avr_log.legitimize_reload_address)
-        avr_edump (" RCLASS = %R\n IN = %r\n OUT = %r\n",
+        avr_edump (" RCLASS.1 = %R\n IN = %r\n OUT = %r\n",
                    POINTER_REGS, XEXP (x, 0), XEXP (x, 0));
       
       return x;
@@ -1398,7 +1400,7 @@ avr_legitimize_reload_address (rtx x, enum machine_mode mode,
                            1, addr_type);
               
               if (avr_log.legitimize_reload_address)
-                avr_edump (" RCLASS = %R\n IN = %r\n OUT = %r\n",
+                avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
                            POINTER_REGS, XEXP (mem, 0), NULL_RTX);
               
               push_reload (mem, NULL_RTX, &XEXP (x, 0), NULL,
@@ -1406,7 +1408,7 @@ avr_legitimize_reload_address (rtx x, enum machine_mode mode,
                            opnum, type);
               
               if (avr_log.legitimize_reload_address)
-                avr_edump (" RCLASS = %R\n IN = %r\n OUT = %r\n",
+                avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
                            BASE_POINTER_REGS, mem, NULL_RTX);
               
               return x;
@@ -1415,12 +1417,12 @@ avr_legitimize_reload_address (rtx x, enum machine_mode mode,
       else if (! (frame_pointer_needed
                   && XEXP (x, 0) == frame_pointer_rtx))
         {
-          push_reload (x, NULL_RTX, &x, NULL,
+          push_reload (x, NULL_RTX, px, NULL,
                        POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
                        opnum, type);
           
           if (avr_log.legitimize_reload_address)
-            avr_edump (" RCLASS = %R\n IN = %r\n OUT = %r\n",
+            avr_edump (" RCLASS.3 = %R\n IN = %r\n OUT = %r\n",
                        POINTER_REGS, x, NULL_RTX);
           
           return x;
index 1a5f20a0e13b6d177558e8e2c72dff5eff0e0bdc..b9ce56fa59fc10afd3299ed551ca6e1cf19ac244 100644 (file)
@@ -375,7 +375,7 @@ typedef struct avr_args {
 
 #define LEGITIMIZE_RELOAD_ADDRESS(X,MODE,OPNUM,TYPE,IND_L,WIN)          \
   do {                                                                  \
-    rtx new_x = avr_legitimize_reload_address (X, MODE, OPNUM, TYPE,    \
+    rtx new_x = avr_legitimize_reload_address (&(X), MODE, OPNUM, TYPE, \
                                                ADDR_TYPE (TYPE),        \
                                                IND_L, make_memloc);     \
     if (new_x)                                                          \