regrename.h (struct du_head): Add target_data_1 and target_data_2 fields.
authorBernd Schmidt <bernds@redhat.com>
Wed, 18 Nov 2015 12:26:43 +0000 (12:26 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 18 Nov 2015 12:26:43 +0000 (12:26 +0000)
commitd085c468179245fdd31c1014d3029ddd9e116e01
treececf7a6e31ae97795e1eef1f83c8bb4b39867e0e
parent98f84050d6e2dd79bf85a1876f3f9ebae41bf926
regrename.h (struct du_head): Add target_data_1 and target_data_2 fields.

* regrename.h (struct du_head): Add target_data_1 and target_data_2
fields.
* regrename.c (create_new_chain): Clear entire struct after allocating.

* config/i386/i386.opt (mmitigate-rop): New option.
* doc/invoke.texi (mmitigate-rop): Document.
* config/i386/i386.c: Include "regrename.h".
(ix86_rop_should_change_byte_p, reg_encoded_number,
ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
static functions.
(ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
* config/i386/i386.md (attr "modrm_class"): New.
(cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
(x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.

From-SVN: r230543
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/i386.opt
gcc/doc/invoke.texi
gcc/regrename.c
gcc/regrename.h