summaryrefslogtreecommitdiff
path: root/gcc/regrename.c
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-18 12:26:43 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-18 12:26:43 +0000
commit19f3f4dc085e6ae2a26d5f24b3a60d2a3e3fd5a3 (patch)
treececf7a6e31ae97795e1eef1f83c8bb4b39867e0e /gcc/regrename.c
parentd120cb123185c9f96bcb9e0e7f0c950424322a28 (diff)
downloadgcc-19f3f4dc085e6ae2a26d5f24b3a60d2a3e3fd5a3.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230543 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regrename.c')
-rw-r--r--gcc/regrename.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 1f11695c5db..e2a1e83c7ea 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -227,13 +227,10 @@ create_new_chain (unsigned this_regno, unsigned this_nregs, rtx *loc,
struct du_chain *this_du;
int nregs;
+ memset (head, 0, sizeof *head);
head->next_chain = open_chains;
head->regno = this_regno;
head->nregs = this_nregs;
- head->need_caller_save_reg = 0;
- head->cannot_rename = 0;
- head->renamed = 0;
- head->tied_chain = NULL;
id_to_chain.safe_push (head);
head->id = current_id++;