summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-14 04:42:57 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-14 04:42:57 +0000
commita277275f7e46ec5ecd83ab591a4ded35376ed4ce (patch)
treeb3b02036d7e4da257ba581c301281cfe9ba71ff3 /gcc
parentbb4e263cda9ef80b576650fcf7c158fb601f47db (diff)
downloadgcc-a277275f7e46ec5ecd83ab591a4ded35376ed4ce.tar.gz
* sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
* sparc.h (PREDICATE_CODES): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29960 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sparc/sparc.c9
-rw-r--r--gcc/config/sparc/sparc.h2
3 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ec3c93f99bb..392a9579564 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Oct 13 21:41:59 1999 Richard Henderson <rth@cygnus.com>
+
+ * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
+ * sparc.h (PREDICATE_CODES): Update.
+
Wed Oct 13 21:18:17 1999 Richard Henderson <rth@cygnus.com>
* alpha.c (some_ni_operand): New.
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index a9e49e719f3..69422c8c022 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -490,6 +490,11 @@ symbolic_operand (op, mode)
register rtx op;
enum machine_mode mode;
{
+ enum machine_mode omode = GET_MODE (op);
+
+ if (omode != mode && omode != VOIDmode && mode != VOIDmode)
+ return 0;
+
switch (GET_CODE (op))
{
case SYMBOL_REF:
@@ -502,10 +507,6 @@ symbolic_operand (op, mode)
|| 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;
}
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 1abb0479b37..315ea251cbb 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -3238,7 +3238,7 @@ do { \
{"call_operand", {MEM}}, \
{"call_operand_address", {SYMBOL_REF, LABEL_REF, CONST, CONST_DOUBLE, \
ADDRESSOF, SUBREG, REG, PLUS, LO_SUM, CONST_INT}}, \
-{"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST, CONST_DOUBLE}}, \
+{"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \
{"symbolic_memory_operand", {SUBREG, MEM}}, \
{"label_ref_operand", {LABEL_REF}}, \
{"sp64_medium_pic_operand", {CONST}}, \