mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-25 23:41:28 +08:00
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 <krebbel@linux.vnet.ibm.com> * 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
This commit is contained in:
parent
a9fcf821eb
commit
eae48192e4
@ -1,3 +1,10 @@
|
||||
2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
||||
|
||||
* 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 <krebbel@linux.vnet.ibm.com>
|
||||
|
||||
* config/s390/s390.md ("*ashrdi3_cc_31")
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user