diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2010-07-03 22:43:47 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2010-07-03 22:43:47 +0000 |
commit | d3ca3d6bd706bd629168a7e467ae1efdd923fed8 (patch) | |
tree | cb35f7db82c2d2397c270304adbd8d6c6e352152 /gcc/config/pa/predicates.md | |
parent | 4d451982e36b1f5a7a8412d9fb36924699aeb223 (diff) | |
download | gcc-d3ca3d6bd706bd629168a7e467ae1efdd923fed8.zip gcc-d3ca3d6bd706bd629168a7e467ae1efdd923fed8.tar.gz gcc-d3ca3d6bd706bd629168a7e467ae1efdd923fed8.tar.bz2 |
re PR target/44597 (FAIL: gcc.c-torture/execute/builtin-prefetch-2.c compilation, ICE)
PR target/44597
* config/pa/predicates.md (prefetch_cc_operand): Remove.
(prefetch_nocc_operand): Likewise.
* config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
(prefetch_20): New insn.
(prefetch_cc): Remove.
(prefetch_nocc): Likewise.
From-SVN: r161786
Diffstat (limited to 'gcc/config/pa/predicates.md')
-rw-r--r-- | gcc/config/pa/predicates.md | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md index 0f0a424..959dbdd 100644 --- a/gcc/config/pa/predicates.md +++ b/gcc/config/pa/predicates.md @@ -240,64 +240,6 @@ return memory_address_p (mode, XEXP (op, 0)); }) -;; Accept anything that can be used as the source operand for a -;; prefetch instruction with a cache-control completer. - -(define_predicate "prefetch_cc_operand" - (match_code "mem") -{ - if (GET_CODE (op) != MEM) - return 0; - - op = XEXP (op, 0); - - /* We must reject virtual registers as we don't allow REG+D. */ - if (op == virtual_incoming_args_rtx - || op == virtual_stack_vars_rtx - || op == virtual_stack_dynamic_rtx - || op == virtual_outgoing_args_rtx - || op == virtual_cfa_rtx) - return 0; - - if (!REG_P (op) && !IS_INDEX_ADDR_P (op)) - return 0; - - /* Until problems with management of the REG_POINTER flag are resolved, - we need to delay creating prefetch insns with unscaled indexed addresses - until CSE is not expected. */ - if (!TARGET_NO_SPACE_REGS - && !cse_not_expected - && GET_CODE (op) == PLUS - && REG_P (XEXP (op, 0))) - return 0; - - return memory_address_p (mode, op); -}) - -;; Accept anything that can be used as the source operand for a -;; prefetch instruction with no cache-control completer. - -(define_predicate "prefetch_nocc_operand" - (match_code "mem") -{ - if (GET_CODE (op) != MEM) - return 0; - - op = XEXP (op, 0); - - /* Until problems with management of the REG_POINTER flag are resolved, - we need to delay creating prefetch insns with unscaled indexed addresses - until CSE is not expected. */ - if (!TARGET_NO_SPACE_REGS - && !cse_not_expected - && GET_CODE (op) == PLUS - && REG_P (XEXP (op, 0)) - && REG_P (XEXP (op, 1))) - return 0; - - return memory_address_p (mode, op); -}) - ;; Accept REG and any CONST_INT that can be moved in one instruction ;; into a general register. |