aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Cox <coxs@gnu.org>1995-04-28 17:04:06 +0000
committerStan Cox <coxs@gnu.org>1995-04-28 17:04:06 +0000
commit17a2962cbbe7bb8c1f49d2fafedcc0f656a1463d (patch)
treeec7330e46c79feb23e80b8bf08198d9c7f207c2c
parent60678486db4abc3df61874d5da303d078baca3c7 (diff)
downloadgcc-17a2962cbbe7bb8c1f49d2fafedcc0f656a1463d.zip
gcc-17a2962cbbe7bb8c1f49d2fafedcc0f656a1463d.tar.gz
gcc-17a2962cbbe7bb8c1f49d2fafedcc0f656a1463d.tar.bz2
(symbolic_operand) Put relocatable pic constants in data
From-SVN: r9536
-rw-r--r--gcc/config/m88k/m88k.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c
index b8ec1bd2..64e7ebc 100644
--- a/gcc/config/m88k/m88k.c
+++ b/gcc/config/m88k/m88k.c
@@ -1,8 +1,7 @@
/* Subroutines for insn-output.c for Motorola 88000.
- Copyright (C) 1988, 1989, 1990, 1991, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1988, 92, 93, 94, 1995 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@mcc.com)
- Enhanced by Michael Meissner (meissner@osf.org)
- Version 2 port by Tom Wood (twood@pets.sps.mot.com)
+ Currently maintained by (gcc@dg-rtp.dg.com)
This file is part of GNU CC.
@@ -3094,3 +3093,32 @@ pic_address_needs_scratch (x)
return 0;
}
+
+/* Returns 1 if OP is either a symbol reference or a sum of a symbol
+ reference and a constant. */
+
+int
+symbolic_operand (op, mode)
+ register rtx op;
+ enum machine_mode mode;
+{
+ switch (GET_CODE (op))
+ {
+ case SYMBOL_REF:
+ case LABEL_REF:
+ return 1;
+
+ case CONST:
+ op = XEXP (op, 0);
+ return ((GET_CODE (XEXP (op, 0)) == SYMBOL_REF
+ || GET_CODE (XEXP (op, 0)) == LABEL_REF)
+ && GET_CODE (XEXP (op, 1)) == CONST_INT);
+
+ /* ??? This clause seems to be irrelevant. */
+ case CONST_DOUBLE:
+ return GET_MODE (op) == mode;
+
+ default:
+ return 0;
+ }
+}