http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51784
--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-14 00:54:05 UTC --- Probably for TARGET_MACHO && !TARGET_64BIT && flag_pic you want to define "nonlocal_goto_receiver" pattern that would compute the right PIC pointer value at that point (not sure if the assembler/linker would be happy by doing something like call ___x86.get_pc_thunk.bx L1: add $(L00000000002$pb-L1), %ebx in the nonlocal goto receiver.