From b5c350d82e02bcc202d4c33a8a43cdf65c7d5d2e Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 13 Sep 2012 15:49:39 +0200 Subject: [PATCH] i386.md (prefetch): Do not assert mode of operand 0. * config/i386/i386.md (prefetch): Do not assert mode of operand 0. (*prefetch_sse_): Do not set mode of address_operand predicate. Rename to ... (*prefetch_sse): ... this. (*prefetch_3dnow_): Do not set mode of address_operand predicate. Rename to ... (*prefetch_3dnow): ... this. From-SVN: r191256 --- gcc/ChangeLog | 10 ++++++++++ gcc/config/i386/i386.md | 16 +++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b3ae7ec1348d..2eb98539a08e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2012-08-13 Uros Bizjak + + * config/i386/i386.md (prefetch): Do not assert mode of operand 0. + (*prefetch_sse_): Do not set mode of address_operand predicate. + Rename to ... + (*prefetch_sse): ... this. + (*prefetch_3dnow_): Do not set mode of address_operand predicate. + Rename to ... + (*prefetch_3dnow): ... this. + 2012-09-13 Steven Bosscher * 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 05d22ddb3dc0..5886478e3fff 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_" - [(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_" - [(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" -- 2.47.2