aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-09-03 23:25:40 +0000
committerRichard Stallman <rms@gnu.org>1992-09-03 23:25:40 +0000
commit39fa3485494de7fae8850e58cc0213cef37683a9 (patch)
treea3741b5e2396881ff4990b8e3dee0d841fbbc666
parentf2a02c3a1d591789634b58af1fe65ead27b5eaad (diff)
downloadgcc-39fa3485494de7fae8850e58cc0213cef37683a9.zip
gcc-39fa3485494de7fae8850e58cc0213cef37683a9.tar.gz
gcc-39fa3485494de7fae8850e58cc0213cef37683a9.tar.bz2
(setup_save_areas): Don't look at WORDS_BIG_ENDIAN.
From-SVN: r2049
-rw-r--r--gcc/caller-save.c18
1 files 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;
}