re PR target/70738 (Add -mgeneral-regs-only option)
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 25 May 2016 18:58:49 +0000 (20:58 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 25 May 2016 18:58:49 +0000 (20:58 +0200)
commitc6e434f5b73538b766aed99c2d33a46f6e547006
tree8ede5bf7c533630d3573246cbf1ee6ca0c9e2e18
parent0ab22eb32cc212b8c52991d3cc74f00783293060
re PR target/70738 (Add -mgeneral-regs-only option)

PR target/70738
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
(ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
* config/i386/i386.opt (ix86_target_flags): Add new Variable.
(-mgeneral-regs-only): Add new option.
* config/i386/i386.c (ix86_option_override_internal): Don't enable
x87 instructions if only general registers are allowed.
(ix86_target_string): Add ix86_flags argument. Handle additional
flags options through ix86_flags argument.  Update all callers.
* doc/invoke.texi: Document -mgeneral-regs-only.

testsuite/ChangeLog:

PR target/70738
* gcc.target/i386/pr70738-1.c: New test.
* gcc.target/i386/pr70738-2.c: Likewise.
* gcc.target/i386/pr70738-3.c: Likewise.
* gcc.target/i386/pr70738-4.c: Likewise.
* gcc.target/i386/pr70738-5.c: Likewise.
* gcc.target/i386/pr70738-6.c: Likewise.
* gcc.target/i386/pr70738-7.c: Likewise.
* gcc.target/i386/pr70738-8.c: Likewise.
* gcc.target/i386/pr70738-9.c: Likewise.

From-SVN: r236738
15 files changed:
gcc/ChangeLog
gcc/common/config/i386/i386-common.c
gcc/config/i386/i386.c
gcc/config/i386/i386.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr70738-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr70738-9.c [new file with mode: 0644]