Commit 3256a76e by David Edelsohn Committed by David Edelsohn

rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed or indirect address operand.

        * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
        or indirect address operand.
        (EXTRA_ADDRESS_CONSTRAINT): New.
        * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".

From-SVN: r103056
parent d7770457
2005-08-13 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
or indirect address operand.
(EXTRA_ADDRESS_CONSTRAINT): New.
* config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
2005-08-13 Sebastian Pop <pop@cri.ensmp.fr>
PR tree-optimization/22236
......
......@@ -1111,6 +1111,7 @@ enum reg_class
'W' is a vector constant that can be easily generated (no mem refs).
'Y' is an indexed or word-aligned displacement memory operand.
'Z' is an indexed or indirect memory operand.
'a' is an indexed or indirect address operand.
't' is for AND masks that can be performed by two rldic{l,r} insns. */
#define EXTRA_CONSTRAINT(OP, C) \
......@@ -1127,6 +1128,7 @@ enum reg_class
: (C) == 'W' ? (easy_vector_constant (OP, GET_MODE (OP))) \
: (C) == 'Y' ? (word_offset_memref_operand (OP, GET_MODE (OP))) \
: (C) == 'Z' ? (indexed_or_indirect_operand (OP, GET_MODE (OP))) \
: (C) == 'a' ? (indexed_or_indirect_address (OP, GET_MODE (OP))) \
: 0)
/* Define which constraints are memory constraints. Tell reload
......@@ -1136,6 +1138,12 @@ enum reg_class
#define EXTRA_MEMORY_CONSTRAINT(C, STR) \
((C) == 'Q' || (C) == 'Y' || (C) == 'Z')
/* Define which constraints should be treated like address constraints
by the reload pass. */
#define EXTRA_ADDRESS_CONSTRAINT(C, STR) \
((C) == 'a')
/* Given an rtx X being reloaded into a reg required to be
in class CLASS, return the class of reg to actually use.
In general this is just CLASS; but on some machines
......
......@@ -14016,7 +14016,7 @@
}")
(define_insn "prefetch"
[(prefetch (match_operand 0 "indexed_or_indirect_address" "p")
[(prefetch (match_operand 0 "indexed_or_indirect_address" "a")
(match_operand:SI 1 "const_int_operand" "n")
(match_operand:SI 2 "const_int_operand" "n"))]
"TARGET_POWERPC"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment