aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-06-25 18:49:51 +0000
committerNick Clifton <nickc@gcc.gnu.org>2003-06-25 18:49:51 +0000
commit2784775405bab5290a9e9feb425d85a5c42b94de (patch)
treec779255ad54d9471ea807b021e30e399ffa21b9c /gcc
parent29d9ed9799340b4b3cb2ff9f3d4da07c2f22dbe2 (diff)
downloadgcc-2784775405bab5290a9e9feb425d85a5c42b94de.zip
gcc-2784775405bab5290a9e9feb425d85a5c42b94de.tar.gz
gcc-2784775405bab5290a9e9feb425d85a5c42b94de.tar.bz2
arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/arm/arm.h13
2 files changed, 20 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index aaee496..96ad8e7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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):
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 74201ff..14223ce 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)), \