aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2007-06-11 15:55:06 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2007-06-11 15:55:06 +0100
commitafcc986d03991b070c7ab76159f5b792b94c0a80 (patch)
treef08294fa1c04fadd6434d0bf574351e57333df48
parentabca47391d1197200823d4b2e307a6f62e9c5fec (diff)
downloadgcc-afcc986d03991b070c7ab76159f5b792b94c0a80.zip
gcc-afcc986d03991b070c7ab76159f5b792b94c0a80.tar.gz
gcc-afcc986d03991b070c7ab76159f5b792b94c0a80.tar.bz2
arm.c (arm_output_dwarf_dtprel, [...]): New.
* config/arm/arm.c (arm_output_dwarf_dtprel, TARGET_ASM_OUTPUT_DWARF_DTPREL): New. From-SVN: r125619
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c17
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fd94652..13cb914 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (arm_output_dwarf_dtprel,
+ TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
+
2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 587b74f..cd287bf 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -195,6 +195,7 @@ static bool arm_handle_option (size_t, const char *, int);
static unsigned HOST_WIDE_INT arm_shift_truncation_mask (enum machine_mode);
static bool arm_cannot_copy_insn_p (rtx);
static bool arm_tls_symbol_p (rtx x);
+static void arm_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
/* Initialize the GCC target structure. */
@@ -377,6 +378,11 @@ static bool arm_tls_symbol_p (rtx x);
#undef TARGET_CANNOT_FORCE_CONST_MEM
#define TARGET_CANNOT_FORCE_CONST_MEM arm_tls_referenced_p
+#ifdef HAVE_AS_TLS
+#undef TARGET_ASM_OUTPUT_DWARF_DTPREL
+#define TARGET_ASM_OUTPUT_DWARF_DTPREL arm_output_dwarf_dtprel
+#endif
+
struct gcc_target targetm = TARGET_INITIALIZER;
/* Obstack for minipool constant handling. */
@@ -16532,6 +16538,17 @@ arm_emit_tls_decoration (FILE *fp, rtx x)
return TRUE;
}
+/* ARM implementation of TARGET_ASM_OUTPUT_DWARF_DTPREL. */
+
+static void
+arm_output_dwarf_dtprel (FILE *file, int size, rtx x)
+{
+ gcc_assert (size == 4);
+ fputs ("\t.word\t", file);
+ output_addr_const (file, x);
+ fputs ("(tlsldo)", file);
+}
+
bool
arm_output_addr_const_extra (FILE *fp, rtx x)
{