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
This commit is contained in:
parent
d77704579c
commit
3256a76e62
3 changed files with 16 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
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"
|
||||
|
|
Loading…
Add table
Reference in a new issue