diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-12 15:25:16 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-12 15:25:16 +0000 |
commit | ced2face734da4c1473225e46e74bf11020ea860 (patch) | |
tree | c7e337bb6237fdae9b67cab57c4825e6ad43ae26 /gcc/simplify-rtx.c | |
parent | a10163583fbab3421e7ac7439c6ccd10dfbb3815 (diff) | |
download | gcc-ced2face734da4c1473225e46e74bf11020ea860.tar.gz |
* simplify-rtx.c (simplify_subreg): Allow volatile memory
to be subregged in case we don't have move instruction.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43261 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 3450f7b168b..b2123c16654 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2409,7 +2409,11 @@ simplify_subreg (outermode, op, innermode, byte) if (GET_CODE (op) == MEM && ! mode_dependent_address_p (XEXP (op, 0)) - && ! MEM_VOLATILE_P (op) + /* Allow splitting of volatile memory references in case we don't + have instruction to move the whole thing. */ + && (! MEM_VOLATILE_P (op) + || (mov_optab->handlers[(int) innermode].insn_code + == CODE_FOR_nothing)) && GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (GET_MODE (op))) { rtx new; |