From 65c1406bf9fdd773e37c6b454a76e5bb3e729e02 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 25 Jan 2000 22:18:59 +0000 Subject: [PATCH] * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31617 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/config/mips/mips.h | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31e31a7..f0c10d9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2000-01-25 Gavin Romig-Koch + * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. + +2000-01-25 Gavin Romig-Koch + * Makefile.in (c-gperf.h) : Change the "See" pointer to point to the new "generated_files" doc. diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index b09d106..bc975ef 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2942,14 +2942,19 @@ typedef struct mips_args { to be generated at present. Also, the MIPS assembler does not grok li.d Infinity. */ -/* ??? SGI Irix 6 assembler fails for CONST address, so reject them. */ +/* ??? SGI Irix 6 assembler fails for CONST address, so reject them. + Note that the Irix 6 assembler problem may already be fixed. + Note also that the GET_CODE (X) == CONST test catches the mips16 + gp pseudo reg (see mips16_gp_pseudo_reg) deciding it is not + a LEGITIMATE_CONSTANT. If we ever want mips16 and ABI_N32 or + ABI_64 to work together, we'll need to fix this. */ #define LEGITIMATE_CONSTANT_P(X) \ ((GET_CODE (X) != CONST_DOUBLE \ || mips_const_double_ok (X, GET_MODE (X))) \ - && ! (GET_CODE (X) == CONST \ - && mips_abi != ABI_32 \ - && mips_abi != ABI_O64 \ - && mips_abi != ABI_EABI) \ + && ! (GET_CODE (X) == CONST \ + && ! TARGET_GAS \ + && (mips_abi == ABI_N32 \ + || mips_abi == ABI_64)) \ && (! TARGET_MIPS16 || mips16_constant (X, GET_MODE (X), 0, 0))) /* A C compound statement that attempts to replace X with a valid -- 2.7.4