From 2c27ce73ee2229b0871c4ccad2342d8a4be85eff Mon Sep 17 00:00:00 2001 From: amylaar Date: Mon, 16 Dec 2002 17:21:50 +0000 Subject: * sh.h (EXTRA_CONSTRAINT_Z): New macro. (EXTRA_CONSTRAINT): Use it. * sh.md (anddi3): Use 'Z' constraint for alternative 2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60173 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/sh/sh.h | 6 ++++++ gcc/config/sh/sh.md | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71233fb1081..7d05e4e7bf7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Mon Dec 16 17:20:04 2002 J"orn Rennecke + + * sh.h (EXTRA_CONSTRAINT_Z): New macro. + (EXTRA_CONSTRAINT): Use it. + * sh.md (anddi3): Use 'Z' constraint for alternative 2. + 2002-12-13 John David Anglin * pa.c (output_millicode_call): Correct typo. diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 57ebbb311af..6e3b91a76e4 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -2321,12 +2321,18 @@ while (0) ? sh_const_vec ((OP), VOIDmode) \ : sh_1el_vec ((OP), VOIDmode)))) +#define EXTRA_CONSTRAINT_Z(OP) \ + (GET_CODE (OP) == CONST_INT \ + && (INTVAL (OP) == (unsigned) 0xffffffff \ + || INTVAL (OP) == (HOST_WIDE_INT) -1 << 32)) + #define EXTRA_CONSTRAINT(OP, C) \ ((C) == 'Q' ? EXTRA_CONSTRAINT_Q (OP) \ : (C) == 'S' ? EXTRA_CONSTRAINT_S (OP) \ : (C) == 'T' ? EXTRA_CONSTRAINT_T (OP) \ : (C) == 'U' ? EXTRA_CONSTRAINT_U (OP) \ : (C) == 'W' ? EXTRA_CONSTRAINT_W (OP) \ + : (C) == 'Z' ? EXTRA_CONSTRAINT_Z (OP) \ : 0) /* GO_IF_LEGITIMATE_ADDRESS recognizes an RTL expression diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 4dbda27e4b9..e3f4ea01d35 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1970,7 +1970,7 @@ (define_insn_and_split "anddi3" [(set (match_operand:DI 0 "arith_reg_operand" "=r,r,r") (and:DI (match_operand:DI 1 "arith_reg_operand" "%r,r,r") - (match_operand:DI 2 "and_operand" "r,P,n")))] + (match_operand:DI 2 "and_operand" "r,P,Z")))] "TARGET_SHMEDIA" "@ and %1, %2, %0 -- cgit v1.2.1