This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
3.3 PATCH: Fix IRIX 6 O32 bootstrap failure with native as
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Eric Christopher <echristo at redhat dot com>
- Date: Fri, 19 Jul 2002 20:05:45 +0200 (MEST)
- Subject: 3.3 PATCH: Fix IRIX 6 O32 bootstrap failure with native as
The mips-sgi-irix6.5o32 configuration with the native as still fails to
bootstrap as described in
http://gcc.gnu.org/ml/gcc-bugs/2002-06/msg00805.html
While the gas-based configurations work again since this patch
http://gcc.gnu.org/ml/gcc-patches/2002-07/msg00214.html
the TARGET_GAS test in CONSTANT_ADDRESS_P breaks with native as. Since it
is highly desirable to use only one assembler when I merge my irix6o32
configuration into the common irix6 one and gas doesn't fully support the
N32 and N64 ABIs yet, this functionality is highly desirable. I've never
run into any problem with the native as before, so the problem mentioned in
the comment may have only existed in really ancient versions (like IRIX 6.0
or 6.1). I therefore suggest the following patch to restore the previous
status (and bootstrap :-).
Bootstrapped on mips-sgi-irix6.5o32 with native as, regression test still
in progress.
Ok for mainline if it passes?
Rainer
Fri Jul 19 01:52:38 2002 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/mips/mips.h (CONSTANT_ADDRESS_P): Remove TARGET_GAS
test.
Index: gcc/config/mips/mips.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.h,v
retrieving revision 1.199
diff -u -p -r1.199 mips.h
--- gcc/config/mips/mips.h 17 Jul 2002 09:24:08 -0000 1.199
+++ gcc/config/mips/mips.h 19 Jul 2002 17:03:47 -0000
@@ -2969,15 +2990,13 @@ typedef struct mips_args {
assembler would use $at as a temp to load in the large offset. In this
case $at is already in use. We convert such problem addresses to
`la $5,s;sw $4,70000($5)' via LEGITIMIZE_ADDRESS. */
-/* ??? SGI Irix 6 assembler fails for CONST address, so reject them
- when !TARGET_GAS. */
+/* ??? SGI Irix 6 assembler fails for CONST address, so reject them. */
/* We should be rejecting everything but const addresses. */
#define CONSTANT_ADDRESS_P(X) \
(GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \
|| GET_CODE (X) == CONST_INT || GET_CODE (X) == HIGH \
|| (GET_CODE (X) == CONST \
&& ! (flag_pic && pic_address_needs_scratch (X)) \
- && (TARGET_GAS) \
&& (mips_abi != ABI_N32 \
&& mips_abi != ABI_64)))