PR target/25967
commitdaabf52054661d2ab9f6565539557b007aa0cf0b
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Jul 2017 10:22:41 +0000 (31 10:22 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Jul 2017 10:22:41 +0000 (31 10:22 +0000)
tree3c8c015e05face5b65528fc39a51a140f7eeb648
parent3a33b9df4e4d4065aa8337cfeae68c51ea2841a7
PR target/25967
* config/i386/i386.c (ix86_function_naked): New function.
(ix86_can_use_return_insn_p): Return false for naked functions.
(ix86_expand_prologue): Skip prologue for naked functions.
(ix86_expand_epilogue): Skip epilogue for naked functions
and emit trap instruction.
(ix86_warn_func_return): New function.
(ix86_attribute_table): Add "naked" attribute specification.
(TARGET_WARN_FUNC_RETURN): Define.
* doc/extend.texi (x86 Function Attributes) <naked>: Document it.

testsuite/ChangeLog:

PR target/25967
* gcc.target/i386/naked-1.c: New test.
* gcc.target/i386/naked-2.c: Ditto.
* gcc.target/i386/naked-3.c: Ditto.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Remove
do_test_body0 stub function, use attribute "naked" instead.
* gcc.dg/pr44290-1.c: Use naked_functions effective target.
* gcc.dg/pr44290-2.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250736 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr44290-1.c
gcc/testsuite/gcc.dg/pr44290-2.c
gcc/testsuite/gcc.target/i386/naked-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/naked-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/naked-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c