aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-07-29 06:25:58 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-07-29 06:25:58 -0400
commitf53b4c93f7a270544b96cb48fa0c52dd03f0e191 (patch)
treeb596a438a4434d9ea806aab030b1677336f7f05d /gcc
parent7edd39eb80b5de5db5add3fa716e09be5dc42e47 (diff)
downloadgcc-f53b4c93f7a270544b96cb48fa0c52dd03f0e191.zip
gcc-f53b4c93f7a270544b96cb48fa0c52dd03f0e191.tar.gz
gcc-f53b4c93f7a270544b96cb48fa0c52dd03f0e191.tar.bz2
(LEGITIMATE_PIC_OPERAND_P): Reject CONST_DOUBLE with MEM with invalid
pic address. From-SVN: r10189
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68kv4.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/m68k/m68kv4.h b/gcc/config/m68k/m68kv4.h
index fc21c9b..0af0013 100644
--- a/gcc/config/m68k/m68kv4.h
+++ b/gcc/config/m68k/m68kv4.h
@@ -1,5 +1,5 @@
/* Target definitions for GNU compiler for mc680x0 running System V.4
- Copyright (C) 1991, 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1993, 1994, 1995 Free Software Foundation, Inc.
Written by Ron Guilmette (rfg@netcom.com) and Fred Fish (fnf@cygnus.com).
@@ -284,8 +284,11 @@ int switch_table_difference_label_flag;
operand of a function call. */
#undef LEGITIMATE_PIC_OPERAND_P
#define LEGITIMATE_PIC_OPERAND_P(X) \
- (! symbolic_operand (X, VOIDmode) \
- || ((GET_CODE(X) == SYMBOL_REF) && SYMBOL_REF_FLAG(X)))
+ ((! symbolic_operand (X, VOIDmode) \
+ && ! (GET_CODE (X) == CONST_DOUBLE && CONST_DOUBLE_MEM (X) \
+ && GET_CODE (CONST_DOUBLE_MEM (X)) == MEM \
+ && symbolic_operand (XEXP (CONST_DOUBLE_MEM (X), 0), VOIDmode))) \
+ || (GET_CODE (X) == SYMBOL_REF && SYMBOL_REF_FLAG (X)))
/* Turn off function cse if we are doing PIC. We always want function call
to be done as `bsr foo@PLTPC', so it will force the assembler to create