sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.

gcc/
	* config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
	(prefetch): Likewise if "pref" would be used.

From-SVN: r126423
This commit is contained in:
Richard Sandiford 2007-07-06 17:00:15 +00:00 committed by Richard Sandiford
parent d6c2c77c91
commit e0ff69ab11
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2007-07-06 Richard Sandiford <richard@codesourcery.com>
* config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
(prefetch): Likewise if "pref" would be used.
2007-07-06 Josh Conner <jconner@apple.com>
PR middle-end/32602

View File

@ -13565,18 +13565,21 @@ mov.l\\t1f,r0\\n\\
[(prefetch (match_operand:SI 0 "register_operand" "r")
(match_operand:SI 1 "const_int_operand" "n")
(match_operand:SI 2 "const_int_operand" "n"))]
"TARGET_HARD_SH4 || TARGET_SHCOMPACT"
"(TARGET_HARD_SH4 || TARGET_SHCOMPACT) && !TARGET_VXWORKS_RTP"
"*
{
return \"pref @%0\";
}"
[(set_attr "type" "other")])
;; In user mode, the "pref" instruction will raise a RADDERR exception
;; for accesses to [0x80000000,0xffffffff]. This makes it an unsuitable
;; implementation of __builtin_prefetch for VxWorks RTPs.
(define_expand "prefetch"
[(prefetch (match_operand 0 "address_operand" "p")
(match_operand:SI 1 "const_int_operand" "n")
(match_operand:SI 2 "const_int_operand" "n"))]
"TARGET_HARD_SH4 || TARGET_SH5"
"(TARGET_HARD_SH4 || TARGET_SH5) && (TARGET_SHMEDIA || !TARGET_VXWORKS_RTP)"
"
{
if (GET_MODE (operands[0]) != Pmode