S/390: Implement speculation barrier
gcc/ChangeLog: 2018-09-27 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New constant definitions. ("tx_assist"): Replace magic number with PPA_TX_ABORT. ("*ppa"): Enable pattern also for -march=zEC12 -mno-htm. ("speculation_barrier"): New expander definition. From-SVN: r264663
This commit is contained in:
parent
461553e6ed
commit
291a9e980e
@ -1,3 +1,11 @@
|
||||
2018-09-27 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||
|
||||
* config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New
|
||||
constant definitions.
|
||||
("tx_assist"): Replace magic number with PPA_TX_ABORT.
|
||||
("*ppa"): Enable pattern also for -march=zEC12 -mno-htm.
|
||||
("speculation_barrier"): New expander definition.
|
||||
|
||||
2018-09-26 Indu Bhagat <indu.bhagat@oracle.com>
|
||||
|
||||
PR gcov-profile/86957
|
||||
|
@ -410,6 +410,15 @@
|
||||
(PFPO_RND_MODE_BFP 1)
|
||||
])
|
||||
|
||||
;; PPA constants
|
||||
|
||||
; Immediate values which can be used as the third operand to the
|
||||
; perform processor assist instruction
|
||||
|
||||
(define_constants
|
||||
[(PPA_TX_ABORT 1)
|
||||
(PPA_OOO_BARRIER 15)])
|
||||
|
||||
; Immediate operands for tbegin and tbeginc
|
||||
(define_constants [(TBEGIN_MASK 65292)]) ; 0xff0c
|
||||
(define_constants [(TBEGINC_MASK 65288)]) ; 0xff08
|
||||
@ -11415,7 +11424,7 @@
|
||||
(define_expand "tx_assist"
|
||||
[(unspec_volatile [(match_operand:SI 0 "register_operand" "")
|
||||
(reg:SI GPR0_REGNUM)
|
||||
(const_int 1)]
|
||||
(const_int PPA_TX_ABORT)]
|
||||
UNSPECV_PPA)]
|
||||
"TARGET_HTM"
|
||||
"")
|
||||
@ -11425,7 +11434,7 @@
|
||||
(match_operand:SI 1 "register_operand" "d")
|
||||
(match_operand 2 "const_int_operand" "I")]
|
||||
UNSPECV_PPA)]
|
||||
"TARGET_HTM && INTVAL (operands[2]) < 16"
|
||||
"(TARGET_ZEC12 || TARGET_HTM) && INTVAL (operands[2]) < 16"
|
||||
"ppa\t%0,%1,%2"
|
||||
[(set_attr "op_type" "RRF")])
|
||||
|
||||
@ -11592,3 +11601,11 @@
|
||||
""
|
||||
"bcr\t7,%%r0"
|
||||
[(set_attr "op_type" "RR")])
|
||||
|
||||
(define_expand "speculation_barrier"
|
||||
[(unspec_volatile [(reg:SI GPR0_REGNUM)
|
||||
(reg:SI GPR0_REGNUM)
|
||||
(const_int PPA_OOO_BARRIER)]
|
||||
UNSPECV_PPA)]
|
||||
"TARGET_ZEC12"
|
||||
"")
|
||||
|
Loading…
Reference in New Issue
Block a user