diff options
author | Alan Modra <amodra@gmail.com> | 2012-10-19 09:03:15 +1030 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2012-10-19 09:03:15 +1030 |
commit | abe6d88d4a5c3bbbcc3b7d95cd82c8188933081e (patch) | |
tree | bfde550d6e2de6f56f360d428c1995af98644df9 /gcc/config | |
parent | 13299a8e759c2c165f46cf661ef1b40e91cd831e (diff) | |
download | gcc-abe6d88d4a5c3bbbcc3b7d95cd82c8188933081e.zip gcc-abe6d88d4a5c3bbbcc3b7d95cd82c8188933081e.tar.gz gcc-abe6d88d4a5c3bbbcc3b7d95cd82c8188933081e.tar.bz2 |
predicates.md (splat_input_operand): Don't call input_operand for MEMs.
* 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.
From-SVN: r192590
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/predicates.md | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 99130ba..fc20a5e 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); }) |