arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
authorNick Clifton <nickc@redhat.com>
Wed, 25 Jun 2003 18:49:51 +0000 (18:49 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Wed, 25 Jun 2003 18:49:51 +0000 (18:49 +0000)
* 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.

From-SVN: r68487

gcc/ChangeLog
gcc/config/arm/arm.h

index aaee4962bb81ca84d1aae5fa9f8de6cab69978ee..96ad8e7dd5df1fe6c0e34e1f1f9970974fd07ac2 100644 (file)
@@ -1,3 +1,12 @@
+2003-06-26  Nick Clifton  <nickc@redhat.com>
+
+       * 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 <dhananjayd@kpitcummins.com>
 
        * config/sh/sh.c (sh_register_move_cost):
index 74201ffb01e2551928292f30cdb707b2608be833..14223cee7c786cdb838da73aa0048dcb114e5eb5 100644 (file)
@@ -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)),               \