diff options
| author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-23 17:13:36 +0000 |
|---|---|---|
| committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-23 17:13:36 +0000 |
| commit | 9c6db7b6ec66cdb6ee18e1957b420219e2b9dcab (patch) | |
| tree | bb872e08aa14730493371ff27263c975c457431b | |
| parent | 37688b6d0ee16583ee3370a31243f8324bcb0bc6 (diff) | |
| download | ppe42-gcc-9c6db7b6ec66cdb6ee18e1957b420219e2b9dcab.tar.gz ppe42-gcc-9c6db7b6ec66cdb6ee18e1957b420219e2b9dcab.zip | |
* reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34106 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/reload1.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 90d37d2b7fe..4b1b63d5679 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION. + 2000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk> * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define diff --git a/gcc/reload1.c b/gcc/reload1.c index e7da78b8a03..c0bf424a87f 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -8905,8 +8905,12 @@ reload_cse_move2add (first) /* ??? We don't know how zero / sign extension is handled, hence we can't go from a narrower to a wider mode. */ if (reg_set_luid[regno] > last_label_luid - && (GET_MODE_SIZE (GET_MODE (reg)) - <= GET_MODE_SIZE (reg_mode[regno])) + && ((GET_MODE_SIZE (GET_MODE (reg)) + == GET_MODE_SIZE (reg_mode[regno])) + || ((GET_MODE_SIZE (GET_MODE (reg)) + <= GET_MODE_SIZE (reg_mode[regno])) + && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (GET_MODE (reg)), + GET_MODE_BITSIZE (reg_mode[regno])))) && GET_CODE (reg_offset[regno]) == CONST_INT) { /* Try to transform (set (REGX) (CONST_INT A)) |

