aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Clarke <stephen.clarke@superh.com>2002-09-19 13:17:57 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2002-09-19 14:17:57 +0100
commitfff08fd8dad02e4b83e37555da6acd2693ae3db7 (patch)
treee76a8e76e727450ab9e7acda86a21f5e4dfafdc0
parenteee3e0fb0b1783cae7e12a60b83e0fefd2a5923e (diff)
downloadgcc-fff08fd8dad02e4b83e37555da6acd2693ae3db7.zip
gcc-fff08fd8dad02e4b83e37555da6acd2693ae3db7.tar.gz
gcc-fff08fd8dad02e4b83e37555da6acd2693ae3db7.tar.bz2
sh.h (UNSPEC_GOTOFF_P): Define.
2002-09-19 Stephen Clarke <stephen.clarke@superh.com> * config/sh/sh.h (UNSPEC_GOTOFF_P): Define. (GOTOFF_P): Extend to allow gotoff plus constant. From-SVN: r57302
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.h10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 40f48b7..90a1bf0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-19 Stephen Clarke <stephen.clarke@superh.com>
+
+ * config/sh/sh.h (UNSPEC_GOTOFF_P): Define.
+ (GOTOFF_P): Extend to allow gotoff plus constant.
+
2002-09-18 Richard Henderson <rth@redhat.com>
* ifcvt.c (noce_process_if_block): Correctly detect X modified
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index a06984f..64a0f2a 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -2277,9 +2277,15 @@ while (0)
(GET_CODE (OP) == CONST && GET_CODE (XEXP ((OP), 0)) == UNSPEC \
&& XINT (XEXP ((OP), 0), 1) == UNSPEC_GOTPLT)
+#define UNSPEC_GOTOFF_P(OP) \
+ (GET_CODE (OP) == UNSPEC && XINT ((OP), 1) == UNSPEC_GOTOFF)
+
#define GOTOFF_P(OP) \
- (GET_CODE (OP) == CONST && GET_CODE (XEXP ((OP), 0)) == UNSPEC \
- && XINT (XEXP ((OP), 0), 1) == UNSPEC_GOTOFF)
+ (GET_CODE (OP) == CONST \
+ && (UNSPEC_GOTOFF_P (XEXP ((OP), 0)) \
+ || (GET_CODE (XEXP ((OP), 0)) == PLUS \
+ && UNSPEC_GOTOFF_P (XEXP (XEXP ((OP), 0), 0)) \
+ && GET_CODE (XEXP (XEXP ((OP), 0), 1)) == CONST_INT)))
#define PIC_ADDR_P(OP) \
(GET_CODE (OP) == CONST && GET_CODE (XEXP ((OP), 0)) == UNSPEC \