]> git.ipfire.org Git - thirdparty/gcc.git/commit
x86: Add target("general-regs-only") function attribute
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 21 Aug 2020 16:42:49 +0000 (09:42 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 23 Aug 2020 15:40:34 +0000 (08:40 -0700)
commit87c753ac241f25d222d46ba1ac66ceba89d6a200
treec87a9caae03b9ba14cb297532b46ea874c186275
parentdbc724d6d2073c7f2d1ea4497b4f9714c9b7ec3c
x86: Add target("general-regs-only") function attribute

gcc/

PR target/96744
* config/i386/i386-options.c (IX86_ATTR_IX86_YES): New.
(IX86_ATTR_IX86_NO): Likewise.
(ix86_opt_type): Add ix86_opt_ix86_yes and ix86_opt_ix86_no.
(ix86_valid_target_attribute_inner_p): Handle general-regs-only,
ix86_opt_ix86_yes and ix86_opt_ix86_no.
(ix86_option_override_internal): Check opts->x_ix86_target_flags
instead of opts->x_ix86_target_flags.
* doc/extend.texi: Document target("general-regs-only") function
attribute.

gcc/testsuite/

PR target/96744
* gcc.target/i386/pr96744-1.c: New test.
* gcc.target/i386/pr96744-2.c: Likewise.
* gcc.target/i386/pr96744-3a.c: Likewise.
* gcc.target/i386/pr96744-3b.c: Likewise.
* gcc.target/i386/pr96744-4.c: Likewise.
* gcc.target/i386/pr96744-5.c: Likewise.
* gcc.target/i386/pr96744-6.c: Likewise.
* gcc.target/i386/pr96744-7.c: Likewise.
* gcc.target/i386/pr96744-8a.c: Likewise.
* gcc.target/i386/pr96744-8b.c: Likewise.
* gcc.target/i386/pr96744-9.c: Likewise.
13 files changed:
gcc/config/i386/i386-options.c
gcc/doc/extend.texi
gcc/testsuite/gcc.target/i386/pr96744-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-3a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-3b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-8a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-8b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr96744-9.c [new file with mode: 0644]