sync.md (*membar_storeload_leon3): New insn.

* config/sparc/sync.md (*membar_storeload_leon3): New insn.
	(*membar_storeload): Disable for LEON3.

From-SVN: r212841
This commit is contained in:
Daniel Cederman 2014-07-19 10:41:03 +00:00 committed by Eric Botcazou
parent 90fe3cc61f
commit 49cc765db3
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2014-07-19 Daniel Cederman <cederman@gaisler.com>
* config/sparc/sync.md (*membar_storeload_leon3): New insn.
(*membar_storeload): Disable for LEON3.
2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/61461

View File

@ -64,11 +64,19 @@
"stbar"
[(set_attr "type" "multi")])
;; For LEON3, STB has the effect of membar #StoreLoad.
(define_insn "*membar_storeload_leon3"
[(set (match_operand:BLK 0 "" "")
(unspec:BLK [(match_dup 0) (const_int 2)] UNSPEC_MEMBAR))]
"TARGET_LEON3"
"stb\t%%g0, [%%sp-1]"
[(set_attr "type" "store")])
;; For V8, LDSTUB has the effect of membar #StoreLoad.
(define_insn "*membar_storeload"
[(set (match_operand:BLK 0 "" "")
(unspec:BLK [(match_dup 0) (const_int 2)] UNSPEC_MEMBAR))]
"TARGET_V8"
"TARGET_V8 && !TARGET_LEON3"
"ldstub\t[%%sp-1], %%g0"
[(set_attr "type" "multi")])