From: nickc Date: Wed, 25 Jun 2003 18:49:51 +0000 (+0000) Subject: * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead of X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=7f5fa44886119590b3eb4a07f48dde35a971573b * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. Replace occurances of '???' with 'XXX' incase they are mistaken for trigraphs. (THUMB_PRINT_OPERAND_ADDRESS): abort if a compound address does not have a register for the first operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68487 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aaee4962bb8..96ad8e7dd5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2003-06-26 Nick Clifton + + * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead + of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. + Replace occurances of '???' with 'XXX' incase they are + mistaken for trigraphs. + (THUMB_PRINT_OPERAND_ADDRESS): abort if a compound address + does not have a register for the first operand. + 2003-06-25 Dhananjay Deshpande * config/sh/sh.c (sh_register_move_cost): diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 74201ffb01e..14223cee7c7 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -759,6 +759,12 @@ extern int arm_is_6_or_7; (TARGET_REALLY_IWMMXT \ && ((TREE_CODE (TYPE) == VECTOR_TYPE) || (TYPE_MODE (TYPE) == DImode) || (TYPE_MODE (TYPE) == DFmode))) +/* XXX Blah -- this macro is used directly by libobjc. Since it + supports no vector modes, cut out the complexity and fall back + on BIGGEST_FIELD_ALIGNMENT. */ +#ifdef IN_TARGET_LIBS +#define BIGGEST_FIELD_ALIGNMENT BIGGEST_ALIGNMENT +#else /* An expression for the alignment of a structure field FIELD if the alignment computed in the usual way is COMPUTED. GCC uses this value instead of the value in `BIGGEST_ALIGNMENT' or @@ -767,6 +773,7 @@ extern int arm_is_6_or_7; (TYPE_NEEDS_IWMMXT_ALIGNMENT (TREE_TYPE (FIELD)) \ ? IWMMXT_ALIGNMENT \ : (COMPUTED)) +#endif /* If defined, a C expression to compute the alignment for a static variable. TYPE is the data type, and ALIGN is the alignment that the object @@ -1459,7 +1466,7 @@ enum reg_class } \ while (0) -/* ??? If an HImode FP+large_offset address is converted to an HImode +/* XXX If an HImode FP+large_offset address is converted to an HImode SP+large_offset address, then reload won't know how to fix it. It sees only that SP isn't valid for HImode, and so reloads the SP into an index register, but the resulting address is still invalid because the offset @@ -1947,7 +1954,7 @@ typedef struct ldr pc, [pc] .word static chain value .word function's address - ??? FIXME: When the trampoline returns, r8 will be clobbered. */ + XXX FIXME: When the trampoline returns, r8 will be clobbered. */ #define ARM_TRAMPOLINE_TEMPLATE(FILE) \ { \ asm_fprintf (FILE, "\tldr\t%r, [%r, #0]\n", \ @@ -2603,6 +2610,8 @@ extern int making_const_table; asm_fprintf (STREAM, "%r!", REGNO (XEXP (X, 0))); \ else if (GET_CODE (X) == PLUS) \ { \ + if (GET_CODE (XEXP (X, 0)) != REG) \ + abort (); \ if (GET_CODE (XEXP (X, 1)) == CONST_INT) \ asm_fprintf (STREAM, "[%r, #%wd]", \ REGNO (XEXP (X, 0)), \