aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2012-09-13 15:49:39 +0200
committerUros Bizjak <uros@gcc.gnu.org>2012-09-13 15:49:39 +0200
commitb5c350d82e02bcc202d4c33a8a43cdf65c7d5d2e (patch)
treeef2f6a3577d4b1e43a1f28ef9b995724bfc37f8d /gcc/config
parentdf92c6403cb342aac3fe8720895d979b6d677321 (diff)
downloadgcc-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/config')
-rw-r--r--gcc/config/i386/i386.md16
1 files changed, 7 insertions, 9 deletions
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"