From: Andreas Krebbel Date: Tue, 1 Mar 2016 09:24:29 +0000 (+0000) Subject: S/390: Get rid of Y constraint in tabort. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eae48192e4c70b47a2066650a56b12c9198b9b47;p=gcc.git S/390: Get rid of Y constraint in tabort. This removes the Y constraint from the tabort pattern definition. In this case it is easier without using substitutions. gcc/ChangeLog: 2016-03-01 Andreas Krebbel * config/s390/s390.md ("*tabort_1"): Change predicate to nonmemory_operand. Add a second alternative to cover register as well as const int operands. ("*tabort_1_plus"): New pattern definition. From-SVN: r233846 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3178ba110e5..1699e1cd710 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-03-01 Andreas Krebbel + + * config/s390/s390.md ("*tabort_1"): Change predicate to + nonmemory_operand. Add a second alternative to cover + register as well as const int operands. + ("*tabort_1_plus"): New pattern definition. + 2016-03-01 Andreas Krebbel * config/s390/s390.md ("*ashrdi3_cc_31") diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index dd91383b11b..ca58c42fe4c 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -10698,7 +10698,7 @@ ; Transaction abort (define_expand "tabort" - [(unspec_volatile [(match_operand:SI 0 "shift_count_or_setmem_operand" "")] + [(unspec_volatile [(match_operand:SI 0 "nonmemory_operand" "")] UNSPECV_TABORT)] "TARGET_HTM && operands != NULL" { @@ -10713,12 +10713,21 @@ }) (define_insn "*tabort_1" - [(unspec_volatile [(match_operand:SI 0 "shift_count_or_setmem_operand" "Y")] + [(unspec_volatile [(match_operand:SI 0 "nonmemory_operand" "aJ")] UNSPECV_TABORT)] "TARGET_HTM && operands != NULL" "tabort\t%Y0" [(set_attr "op_type" "S")]) +(define_insn "*tabort_1_plus" + [(unspec_volatile [(plus:SI (match_operand:SI 0 "register_operand" "a") + (match_operand:SI 1 "const_int_operand" "J"))] + UNSPECV_TABORT)] + "TARGET_HTM && operands != NULL + && CONST_OK_FOR_CONSTRAINT_P (INTVAL (operands[1]), 'J', \"J\")" + "tabort\t%1(%0)" + [(set_attr "op_type" "S")]) + ; Transaction extract nesting depth (define_insn "etnd"