cfgexpand.c (asm_clobber_reg_is_valid): Reject clobbers outside of accessible_reg_set.
authorUros Bizjak <ubizjak@gmail.com>
Tue, 7 May 2019 15:42:42 +0000 (17:42 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 7 May 2019 15:42:42 +0000 (17:42 +0200)
commit0a59215131c02dee4c8829f93d1ee678647614da
tree6eb2ab41018cd72b01e17fe77465c63b6837abf0
parent73e828becf8d33334800c7a8c83b1d7a8967f2a8
cfgexpand.c (asm_clobber_reg_is_valid): Reject clobbers outside of accessible_reg_set.

* cfgexpand.c (asm_clobber_reg_is_valid): Reject
clobbers outside of accessible_reg_set.
* config/i386/i386.c (ix86_conditional_register_usage):
Disable register sets by clearing corresponding bits in
accessible_reg_set.  Do not set corresponding bits in fixed_regs,
call_used_regs and don't clear corresponding reg_names array members.

testsuite/ChangeLog:

* gcc.target/i386/asm-7.c: New test.
* gcc.target/i386/asm-1.c: Update expected error string.
* gcc.target/i386/pr62120.c: Ditto.

From-SVN: r270955
gcc/ChangeLog
gcc/cfgexpand.c
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/asm-1.c
gcc/testsuite/gcc.target/i386/asm-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr62120.c