aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/darwin.c
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2013-09-29 20:14:39 +0000
committerIain Sandoe <iains@gcc.gnu.org>2013-09-29 20:14:39 +0000
commite1c5c87790fb8fa4a85db24a26f20edf990c4d98 (patch)
tree50bb61b2cfc0b2b8e9dc5f9e2ee4a4f4739f8ffc /gcc/config/darwin.c
parent749278c58dee4d197d9cb951eb524f9159184c4c (diff)
downloadgcc-e1c5c87790fb8fa4a85db24a26f20edf990c4d98.zip
gcc-e1c5c87790fb8fa4a85db24a26f20edf990c4d98.tar.gz
gcc-e1c5c87790fb8fa4a85db24a26f20edf990c4d98.tar.bz2
re PR target/10901 (non-local goto's don't work on darwin)
gcc: PR target/10901 * config/darwin-protos.h (machopic_get_function_picbase): New. * config/darwin.c (machopic_get_function_picbase): New. * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase label for a new func. (load_macho_picbase_di): Likewise. (reload_macho_picbase): New expand. (reload_macho_picbase_si): New insn. (reload_macho_picbase_di): New insn. (nonlocal_goto_receiver): New define and split. * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC. (unspecv enum): Add UNSPECV_NLGR. From-SVN: r203019
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r--gcc/config/darwin.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index ab48558..cb1bc38 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -405,6 +405,19 @@ machopic_output_function_base_name (FILE *file)
fprintf (file, "L%d$pb", current_pic_label_num);
}
+char curr_picbasename[32];
+
+const char *
+machopic_get_function_picbase (void)
+{
+ /* If dynamic-no-pic is on, we should not get here. */
+ gcc_assert (!MACHO_DYNAMIC_NO_PIC_P);
+
+ update_pic_label_number_if_needed ();
+ snprintf (curr_picbasename, 32, "L%d$pb", current_pic_label_num);
+ return (const char *) curr_picbasename;
+}
+
bool
machopic_should_output_picbase_label (void)
{