From: Alan Modra Date: Thu, 18 Oct 2012 22:33:15 +0000 (+1030) Subject: predicates.md (splat_input_operand): Don't call input_operand for MEMs. X-Git-Tag: misc/gccgo-go1_1_2~99 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=abe6d88d4a5c3bbbcc3b7d95cd82c8188933081e;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 86c3f2fff0c8..fb9c4e866630 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-10-19 Alan Modra + + * 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 * config/i386/i386.md (rdpmc): Remove expander. diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 99130ba6eef4..fc20a5e57615 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); })