diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2012-09-13 15:49:39 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2012-09-13 15:49:39 +0200 |
commit | b5c350d82e02bcc202d4c33a8a43cdf65c7d5d2e (patch) | |
tree | ef2f6a3577d4b1e43a1f28ef9b995724bfc37f8d /gcc | |
parent | df92c6403cb342aac3fe8720895d979b6d677321 (diff) | |
download | gcc-b5c350d82e02bcc202d4c33a8a43cdf65c7d5d2e.zip gcc-b5c350d82e02bcc202d4c33a8a43cdf65c7d5d2e.tar.gz gcc-b5c350d82e02bcc202d4c33a8a43cdf65c7d5d2e.tar.bz2 |
i386.md (prefetch): Do not assert mode of operand 0.
* config/i386/i386.md (prefetch): Do not assert mode of operand 0.
(*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
Rename to ...
(*prefetch_sse): ... this.
(*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
Rename to ...
(*prefetch_3dnow): ... this.
From-SVN: r191256
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 16 |
2 files changed, 17 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b3ae7ec..2eb9853 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2012-08-13 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (prefetch): Do not assert mode of operand 0. + (*prefetch_sse_<mode>): Do not set mode of address_operand predicate. + Rename to ... + (*prefetch_sse): ... this. + (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate. + Rename to ... + (*prefetch_3dnow): ... this. + 2012-09-13 Steven Bosscher <steven@gcc.gnu.org> * ipa-pure-const.c (state_from_flags, local_pure_const): Use diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 05d22dd..5886478 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -17800,12 +17800,10 @@ int locality = INTVAL (operands[2]); gcc_assert (rw == 0 || rw == 1); - gcc_assert (locality >= 0 && locality <= 3); - gcc_assert (GET_MODE (operands[0]) == Pmode - || GET_MODE (operands[0]) == VOIDmode); + gcc_assert (IN_RANGE (locality, 0, 3)); + if (TARGET_PRFCHW && rw) operands[2] = GEN_INT (3); - /* Use 3dNOW prefetch in case we are asking for write prefetch not supported by SSE counterpart or the SSE prefetch is not available (K6 machines). Otherwise use SSE prefetch as it allows specifying @@ -17816,8 +17814,8 @@ operands[1] = const0_rtx; }) -(define_insn "*prefetch_sse_<mode>" - [(prefetch (match_operand:P 0 "address_operand" "p") +(define_insn "*prefetch_sse" + [(prefetch (match_operand 0 "address_operand" "p") (const_int 0) (match_operand:SI 1 "const_int_operand"))] "TARGET_PREFETCH_SSE" @@ -17827,7 +17825,7 @@ }; int locality = INTVAL (operands[1]); - gcc_assert (locality >= 0 && locality <= 3); + gcc_assert (IN_RANGE (locality, 0, 3)); return patterns[locality]; } @@ -17837,8 +17835,8 @@ (symbol_ref "memory_address_length (operands[0])")) (set_attr "memory" "none")]) -(define_insn "*prefetch_3dnow_<mode>" - [(prefetch (match_operand:P 0 "address_operand" "p") +(define_insn "*prefetch_3dnow" + [(prefetch (match_operand 0 "address_operand" "p") (match_operand:SI 1 "const_int_operand" "n") (const_int 3))] "TARGET_3DNOW || TARGET_PRFCHW" |