aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <dje@gcc.gnu.org>2006-02-19 13:46:12 -0500
committerDavid Edelsohn <dje@gcc.gnu.org>2006-02-19 13:46:12 -0500
commit0d5817b2d6b3d4a64a8cd336a8ef76dd001733c0 (patch)
tree1aa5f1b41e6447c659f8a2fcfa551082a6e1d7d2
parent62448787ebfeba29c475b5713b97aaade1ce2243 (diff)
downloadgcc-0d5817b2d6b3d4a64a8cd336a8ef76dd001733c0.zip
gcc-0d5817b2d6b3d4a64a8cd336a8ef76dd001733c0.tar.gz
gcc-0d5817b2d6b3d4a64a8cd336a8ef76dd001733c0.tar.bz2
xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
* config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define. * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define. From-SVN: r111275
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/rs6000/rs6000.c11
-rw-r--r--gcc/config/rs6000/xcoff.h1
3 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 974f56d..0012dcb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-19 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
+ * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
+
2006-02-19 Daniel Berlin <dberlin@dberlin.org>
* doc/invoke.texi: Document -fipa-pta.
@@ -32,13 +37,13 @@
* doc/contrib.texi (Contributors): Add classpath/libgcj hackers
who added new 4.1 features, bug fixes and integration support.
-2005-02-18 David Edelsohn <edelsohn@gnu.org>
+2006-02-18 David Edelsohn <edelsohn@gnu.org>
PR target/26350
* config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
MEM for ABI_V4 pic.
-2005-02-18 Richard Sandiford <richard@codesourcery.com>
+2006-02-18 Richard Sandiford <richard@codesourcery.com>
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index a7b8f40..2b69a48 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -625,6 +625,7 @@ static void rs6000_elf_encode_section_info (tree, rtx, int)
#endif
static bool rs6000_use_blocks_for_constant_p (enum machine_mode, rtx);
#if TARGET_XCOFF
+static void rs6000_xcoff_asm_output_anchor (rtx);
static void rs6000_xcoff_asm_globalize_label (FILE *, const char *);
static void rs6000_xcoff_asm_init_sections (void);
static void rs6000_xcoff_asm_named_section (const char *, unsigned int, tree);
@@ -18220,6 +18221,16 @@ rs6000_elf_end_indicate_exec_stack (void)
#if TARGET_XCOFF
static void
+rs6000_xcoff_asm_output_anchor (rtx symbol)
+{
+ char buffer[100];
+
+ sprintf (buffer, "$ + " HOST_WIDE_INT_PRINT_DEC,
+ SYMBOL_REF_BLOCK_OFFSET (symbol));
+ ASM_OUTPUT_DEF (asm_out_file, XSTR (symbol, 0), buffer);
+}
+
+static void
rs6000_xcoff_asm_globalize_label (FILE *stream, const char *name)
{
fputs (GLOBAL_ASM_OP, stream);
diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h
index e7560a8..abeab5a 100644
--- a/gcc/config/rs6000/xcoff.h
+++ b/gcc/config/rs6000/xcoff.h
@@ -80,6 +80,7 @@
|| (SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
&& ! TARGET_NO_FP_IN_TOC)))))
+#define TARGET_ASM_OUTPUT_ANCHOR rs6000_xcoff_asm_output_anchor
#define TARGET_ASM_GLOBALIZE_LABEL rs6000_xcoff_asm_globalize_label
#define TARGET_ASM_INIT_SECTIONS rs6000_xcoff_asm_init_sections
#define TARGET_ASM_NAMED_SECTION rs6000_xcoff_asm_named_section