2007-02-07 Roger Sayle <roger@eyesopen.com>
+ * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
+ parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
+ tablejumpdi, movsi_to_cr_one): Remove constraints from
+ define_expand's match_operands.
+
+2007-02-07 Roger Sayle <roger@eyesopen.com>
+
* global.c (compute_regsets): Move declatation of "i" inside of
#ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
(define_expand "ctz<mode>2"
[(set (match_dup 2)
- (neg:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")))
+ (neg:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))
(parallel [(set (match_dup 3) (and:GPR (match_dup 1)
(match_dup 2)))
(clobber (scratch:CC))])
(set (match_dup 4) (clz:GPR (match_dup 3)))
- (set (match_operand:GPR 0 "gpc_reg_operand" "=r")
+ (set (match_operand:GPR 0 "gpc_reg_operand" "")
(minus:GPR (match_dup 5) (match_dup 4)))]
""
{
(define_expand "ffs<mode>2"
[(set (match_dup 2)
- (neg:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")))
+ (neg:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))
(parallel [(set (match_dup 3) (and:GPR (match_dup 1)
(match_dup 2)))
(clobber (scratch:CC))])
(set (match_dup 4) (clz:GPR (match_dup 3)))
- (set (match_operand:GPR 0 "gpc_reg_operand" "=r")
+ (set (match_operand:GPR 0 "gpc_reg_operand" "")
(minus:GPR (match_dup 5) (match_dup 4)))]
""
{
"popcntb %0,%1")
(define_expand "popcount<mode>2"
- [(use (match_operand:GPR 0 "gpc_reg_operand" "=r"))
- (use (match_operand:GPR 1 "gpc_reg_operand" "r"))]
+ [(set (match_operand:GPR 0 "gpc_reg_operand" "")
+ (popcount:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))]
"TARGET_POPCNTB"
{
rs6000_emit_popcount (operands[0], operands[1]);
})
(define_expand "parity<mode>2"
- [(use (match_operand:GPR 0 "gpc_reg_operand" "=r"))
- (use (match_operand:GPR 1 "gpc_reg_operand" "r"))]
+ [(set (match_operand:GPR 0 "gpc_reg_operand" "")
+ (parity:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))]
"TARGET_POPCNTB"
{
rs6000_emit_parity (operands[0], operands[1]);
[(set (match_operand:SI 0 "gpc_reg_operand" "")
(truncate:SI
(lshiftrt:DI (mult:DI (sign_extend:DI
- (match_operand:SI 1 "gpc_reg_operand" "%r"))
+ (match_operand:SI 1 "gpc_reg_operand" ""))
(sign_extend:DI
- (match_operand:SI 2 "gpc_reg_operand" "r")))
+ (match_operand:SI 2 "gpc_reg_operand" "")))
(const_int 32))))]
""
"
}")
(define_expand "abstf2_internal"
- [(set (match_operand:TF 0 "gpc_reg_operand" "=f")
- (match_operand:TF 1 "gpc_reg_operand" "f"))
+ [(set (match_operand:TF 0 "gpc_reg_operand" "")
+ (match_operand:TF 1 "gpc_reg_operand" ""))
(set (match_dup 3) (match_dup 5))
(set (match_dup 5) (abs:DF (match_dup 5)))
(set (match_dup 4) (compare:CCFP (match_dup 3) (match_dup 5)))
;; We move the back-chain and decrement the stack pointer.
(define_expand "allocate_stack"
- [(set (match_operand 0 "gpc_reg_operand" "=r")
+ [(set (match_operand 0 "gpc_reg_operand" "")
(minus (reg 1) (match_operand 1 "reg_or_short_operand" "")))
(set (reg 1)
(minus (reg 1) (match_dup 1)))]
(define_expand "tablejumpdi"
[(set (match_dup 4)
- (sign_extend:DI (match_operand:SI 0 "lwa_operand" "rm")))
+ (sign_extend:DI (match_operand:SI 0 "lwa_operand" "")))
(set (match_dup 3)
(plus:DI (match_dup 4)
(match_dup 2)))
; faster; for instance, on the 601 and 750.
(define_expand "movsi_to_cr_one"
- [(set (match_operand:CC 0 "cc_reg_operand" "=y")
- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ [(set (match_operand:CC 0 "cc_reg_operand" "")
+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "")
(match_dup 2)] UNSPEC_MOVESI_TO_CR))]
""
"operands[2] = GEN_INT (1 << (75 - REGNO (operands[0])));")