diff options
author | Richard Stallman <rms@gnu.org> | 1992-09-14 14:33:07 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-09-14 14:33:07 +0000 |
commit | 57caa638af543fe30bd9456b448b8a03b6b4b970 (patch) | |
tree | 2cc64c3803cbfe17d44d9489f2f07bb6b0cf9d8e /gcc | |
parent | 4cf8de9f3eb5c333a2d73fa813e2cf0769b12b02 (diff) | |
download | gcc-57caa638af543fe30bd9456b448b8a03b6b4b970.zip gcc-57caa638af543fe30bd9456b448b8a03b6b4b970.tar.gz gcc-57caa638af543fe30bd9456b448b8a03b6b4b970.tar.bz2 |
*** empty log message ***
From-SVN: r2119
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload1.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 8eee024..6f972f4 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -364,13 +364,20 @@ init_reload () /* See if reg+reg is a valid (and offsettable) address. */ - tem = gen_rtx (PLUS, Pmode, - gen_rtx (REG, Pmode, FRAME_POINTER_REGNUM), - gen_rtx (REG, Pmode, FRAME_POINTER_REGNUM)); - /* This way, we make sure that reg+reg is an offsettable address. */ - tem = plus_constant (tem, 4); + for (i = 0; i < FIRST_PSEUDO_REGSTER; i++) + { + tem = gen_rtx (PLUS, Pmode, + gen_rtx (REG, Pmode, FRAME_POINTER_REGNUM), + gen_rtx (REG, Pmode, i)); + /* This way, we make sure that reg+reg is an offsettable address. */ + tem = plus_constant (tem, 4); - double_reg_address_ok = memory_address_p (QImode, tem); + if (memory_address_p (QImode, tem)) + { + double_reg_address_ok = 1; + break; + } + } /* Initialize obstack for our rtl allocation. */ gcc_obstack_init (&reload_obstack); |