]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/darwin-protos.h
re PR target/51784 (PIC register not correctly preserved in nested funcs / with non...
authorIain Sandoe <iain@codesourcery.com>
Sat, 20 Jul 2013 16:22:59 +0000 (16:22 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Sat, 20 Jul 2013 16:22:59 +0000 (16:22 +0000)
commit88d9bfe6b9b0a74d8898b2bfad60daa2b01c7049
tree88e847313021b566970743f6d41c2ceb446ede0a
parent2d586fb43236fb518dd2644cef33d525684cddff
re PR target/51784 (PIC register not correctly preserved in nested funcs / with non-local goto)

gcc/

PR target/51784
* config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
second label for nonlocal goto receivers. Don't output pic base labels
unless we're producing PIC; mark that action unreachable().
(ix86_save_reg): If the function contains a nonlocal label, save the
PIC base reg.
* config/darwin-protos.h (machopic_should_output_picbase_label): New.
* gcc/config/darwin.c (emitted_pic_label_num): New GTY.
(update_pic_label_number_if_needed): New.
(machopic_output_function_base_name): Adjust for nonlocal receiver
case.
(machopic_should_output_picbase_label): New.
* config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
(nonlocal_goto_receiver): New insn and split.

From-SVN: r201086
gcc/config/darwin-protos.h
gcc/config/darwin.c
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog