From 5250dd366f81dc1633767d88260963fa0bda6c9b Mon Sep 17 00:00:00 2001 From: rms Date: Thu, 3 Sep 1992 23:25:40 +0000 Subject: [PATCH] (setup_save_areas): Don't look at WORDS_BIG_ENDIAN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2049 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/caller-save.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/gcc/caller-save.c b/gcc/caller-save.c index cc356c3..4c92159 100644 --- a/gcc/caller-save.c +++ b/gcc/caller-save.c @@ -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; } -- 2.7.4