diff options
author | Alan Modra <amodra@gmail.com> | 2012-10-18 22:33:15 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2012-10-18 22:33:15 +0000 |
commit | b5953960164d3cc20cbc697cec24fccfb6239bb2 (patch) | |
tree | bfde550d6e2de6f56f360d428c1995af98644df9 | |
parent | ffa9df153e8ca361b071f106728a898e418e6cd5 (diff) |
* config/rs6000/predicates.md (splat_input_operand): Don't call
input_operand for MEMs. Instead check for volatile and call
memory_address_addr_space_p with modified mode.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192590 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 86c3f2fff0c..fb9c4e86663 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-10-19 Alan Modra <amodra@gmail.com> + + * config/rs6000/predicates.md (splat_input_operand): Don't call + input_operand for MEMs. Instead check for volatile and call + memory_address_addr_space_p with modified mode. + 2012-10-18 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (rdpmc): Remove expander. diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 99130ba6eef..fc20a5e5761 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -940,12 +940,16 @@ { if (MEM_P (op)) { + if (! volatile_ok && MEM_VOLATILE_P (op)) + return 0; if (mode == DFmode) mode = V2DFmode; else if (mode == DImode) mode = V2DImode; else - gcc_unreachable (); + gcc_unreachable (); + return memory_address_addr_space_p (mode, XEXP (op, 0), + MEM_ADDR_SPACE (op)); } return input_operand (op, mode); }) |