This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> > I agree now that it will be much cleaner just to punt this into the backend, > so it may be worth noting that making this work properly for the non-PIC > case requires quite a degree of massaging in the backends. > > Objections withdrawn. Thanks!, I have attached the latest patch after making the changes Bernhard suggested. Also, added a comment saying non-PIC case needs to be handled specially by the backend. * c-family/c-common.c (no_plt): New attribute. (handle_no_plt_attribute): New handler. * calls.c (prepare_call_address): Check for no_plt attribute. * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for no_plt attribute. (ix86_expand_call): Ditto. (ix86_nopic_no_plt_attribute_p): New function. (ix86_output_call_insn): Output indirect call for non-pic no plt calls. * doc/extend.texi (no_plt): Document new attribute. * doc/invoke.texi: Document new attribute. * testsuite/gcc.target/i386/noplt-1.c: New test. * testsuite/gcc.target/i386/noplt-2.c: New test. * testsuite/gcc.target/i386/noplt-3.c: New test. * testsuite/gcc.target/i386/noplt-4.c: New test. This patch does two things: * Adds new generic function attribute "no_plt" that is similar in functionality to -fno-plt except that it applies only to calls to functions that are marked with this attribute. * For x86_64, it makes -fno-plt(and the attribute) also work for non-PIC code by directly generating an indirect call via a GOT entry. Sri > > Thanks, > Ramana
Attachment:
noplt_attrib_patch_new.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |