diff options
author | Iain Sandoe <iain@codesourcery.com> | 2013-09-29 20:14:39 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2013-09-29 20:14:39 +0000 |
commit | e1c5c87790fb8fa4a85db24a26f20edf990c4d98 (patch) | |
tree | 50bb61b2cfc0b2b8e9dc5f9e2ee4a4f4739f8ffc /gcc/config/darwin.c | |
parent | 749278c58dee4d197d9cb951eb524f9159184c4c (diff) | |
download | gcc-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.c | 13 |
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) { |