OSDN Git Service

(setup_save_areas): Don't look at WORDS_BIG_ENDIAN.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Sep 1992 23:25:40 +0000 (23:25 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Sep 1992 23:25:40 +0000 (23:25 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2049 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/caller-save.c

index cc356c3..4c92159 100644 (file)
@@ -334,22 +334,16 @@ setup_save_areas (pchanged)
              = assign_stack_local (regno_save_mode[i][j],
                                    GET_MODE_SIZE (regno_save_mode[i][j]), 0);
 
-           /* Setup singe word save area just in case... */
+           /* Setup single word save area just in case... */
            for (k = 0; k < j; k++)
              {
-               int offset;
-               rtx temp;
+               /* This should not depend on WORDS_BIG_ENDIAN.
+                  The order of words in regs is the same as in memory.  */
+               rtx temp = gen_rtx (MEM, regno_save_mode[i+k][1], 
+                                   XEXP (regno_save_mem[i][j], 0));
 
-               if (WORDS_BIG_ENDIAN) 
-                 offset = k * UNITS_PER_WORD;
-               else
-                 offset =  - k * UNITS_PER_WORD;
-
-               temp 
-                 = gen_rtx(MEM, regno_save_mode[i+k][1], 
-                           XEXP (regno_save_mem[i][j], 0));
                regno_save_mem[i+k][1] 
-                 = adj_offsettable_operand(temp, offset);
+                 = adj_offsettable_operand (temp, k * UNITS_PER_WORD);
              }
            *pchanged = 1;
          }