diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1998-06-16 15:35:50 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-06-16 16:35:50 +0100 |
commit | 75528b80dca75e52c679e37e819a61c266987a02 (patch) | |
tree | 8b5ffddae37bd6717b3a9b42aa7d67bf57d6e955 | |
parent | 42b82dd3b293549c35f118b78e3f93842cf55a5a (diff) | |
download | gcc-75528b80dca75e52c679e37e819a61c266987a02.zip gcc-75528b80dca75e52c679e37e819a61c266987a02.tar.gz gcc-75528b80dca75e52c679e37e819a61c266987a02.tar.bz2 |
reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS is earlier than RELOAD_FOR_OUTPUT_ADDRESS...
* reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS
is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS
is earlier than RELOAD_FOR_INPUT_ADDRESS.
From-SVN: r20526
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/reload1.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 22f3e27..e8f2472 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Tue Jun 16 23:33:24 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS + is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS + is earlier than RELOAD_FOR_INPUT_ADDRESS. + Tue Jun 16 13:15:16 1998 Jim Wilson <wilson@cygnus.com> * libgcc1-test.c (memcpy): Define. diff --git a/gcc/reload1.c b/gcc/reload1.c index 23ad439..b1e26ae 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4658,6 +4658,10 @@ reload_reg_free_before_p (regno, opnum, type) the first place, since we know that it was allocated. */ case RELOAD_FOR_OUTPUT_ADDRESS: + /* Earlier reloads include RELOAD_FOR_INPADDR_ADDRESS reloads. */ + if (TEST_HARD_REG_BIT (reload_reg_used_in_outaddr_addr[opnum], regno)) + return 0; + /* ... fall through ... */ case RELOAD_FOR_OUTADDR_ADDRESS: /* Earlier reloads are for earlier outputs or their addresses, any RELOAD_FOR_INSN reloads, any inputs or their addresses, or any @@ -4738,6 +4742,10 @@ reload_reg_free_before_p (regno, opnum, type) return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno); case RELOAD_FOR_INPUT_ADDRESS: + /* Earlier reloads include RELOAD_FOR_INPADDR_ADDRESS reloads. */ + if (TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[opnum], regno)) + return 0; + /* ... fall through ... */ case RELOAD_FOR_INPADDR_ADDRESS: /* Similarly, all we have to check is for use in earlier inputs' addresses. */ |