From 6b643efd4f1ae7dc3e7efa308f715350f504bab6 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Sun, 3 Sep 2017 20:48:59 +0200 Subject: [PATCH] i386.md (*bt): Use nonimmediate_operand predicate for operand 1. * config/i386/i386.md (*bt): Use nonimmediate_operand predicate for operand 1. Add (m,) constraint. (*jcc_bt): Use nonimmediate_operand predicate for operand 1. Prevent memory operand 1 with register operand 2. From-SVN: r251625 --- gcc/ChangeLog | 15 ++++++++++++--- gcc/config/i386/i386.md | 8 ++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f632ca..3b758d2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-09-03 Uros Bizjak + + * config/i386/i386.md (*bt): Use nonimmediate_operand + predicate for operand 1. Add (m,) constraint. + (*jcc_bt): Use nonimmediate_operand predicate for operand 1. + Prevent memory operand 1 with register operand 2. + 2017-09-01 Segher Boessenkool PR rtl-optimization/82024 @@ -8,9 +15,11 @@ 2017-09-01 Jakub Jelinek PR target/81766 - * config/i386/i386.c (ix86_init_large_pic_reg): Return label instead of void. - (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg, if non-NULL - and preceded by NOTE_INSN_BASIC_BLOCK, swap the note and label. + * config/i386/i386.c (ix86_init_large_pic_reg): Return label + instead of void. + (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg, + if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note + and label. 2017-09-01 Joerg Sonnenberger Jeff Law diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 7465848..4cbd8cd 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -11217,9 +11217,9 @@ [(set (reg:CCC FLAGS_REG) (compare:CCC (zero_extract:SWI48 - (match_operand:SWI48 0 "register_operand" "r") + (match_operand:SWI48 0 "nonimmediate_operand" "r,m") (const_int 1) - (match_operand:SI 1 "nonmemory_operand" "r")) + (match_operand:SI 1 "nonmemory_operand" "r,")) (const_int 0)))] "" { @@ -11248,7 +11248,7 @@ [(set (pc) (if_then_else (match_operator 0 "bt_comparison_operator" [(zero_extract:SWI48 - (match_operand:SWI48 1 "register_operand") + (match_operand:SWI48 1 "nonimmediate_operand") (const_int 1) (match_operand:SI 2 "nonmemory_operand")) (const_int 0)]) @@ -11260,7 +11260,7 @@ ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (mode) && INTVAL (operands[2]) >= (optimize_function_for_size_p (cfun) ? 8 : 32)) - : register_operand (operands[2], SImode)) + : !memory_operand (operands[1], mode)) && can_create_pseudo_p ()" "#" "&& 1" -- 2.7.4