diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-05-26 15:24:58 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-05-26 15:24:58 -0600 |
commit | a07c9e2b459a19d618ee49e0a72d7b682b1ffbc7 (patch) | |
tree | 045975f692546a387945c41503575175b08527f9 /gcc/reload1.c | |
parent | a8f3f283e03813795fb8467e488c93045c8fcbca (diff) | |
download | gcc-a07c9e2b459a19d618ee49e0a72d7b682b1ffbc7.zip gcc-a07c9e2b459a19d618ee49e0a72d7b682b1ffbc7.tar.gz gcc-a07c9e2b459a19d618ee49e0a72d7b682b1ffbc7.tar.bz2 |
char *version_string = "egcs-2.91.33 19980526 (gcc2 ss-980502 experimental)";
From-SVN: r20068
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index e0602be..14c2398 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4726,15 +4726,19 @@ reload_reg_free_before_p (regno, opnum, type) return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno); case RELOAD_FOR_INPUT: - /* The only things earlier are the address for this and - earlier inputs, other inputs (which we know we don't conflict - with), and addresses of RELOAD_OTHER objects. */ + /* The only things earlier are the address for this and earlier inputs, + earlier inputs, and addresses of RELOAD_OTHER objects. */ - for (i = 0; i <= opnum; i++) + for (i = 0; i < opnum; i++) if (TEST_HARD_REG_BIT (reload_reg_used_in_input_addr[i], regno) - || TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[i], regno)) + || TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[i], regno) + || TEST_HARD_REG_BIT (reload_reg_used_in_input[i], regno)) return 0; + if (TEST_HARD_REG_BIT (reload_reg_used_in_input_addr[opnum], regno) + || TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[opnum], regno)) + return 0; + return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno); case RELOAD_FOR_INPUT_ADDRESS: |