summaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
authorDaniel Cederman <cederman@gaisler.com>2014-07-19 10:41:03 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2014-07-19 10:41:03 +0000
commit49cc765db35a5a21cab2aece27a44983fa70b94b (patch)
tree10d97dd8a149186db1d203a9bfb8786ed7439fba /gcc/config/sparc
parent90fe3cc61f3cde37a082c78aaee6b0ce108b285e (diff)
downloadgcc-49cc765db35a5a21cab2aece27a44983fa70b94b.tar.gz
sync.md (*membar_storeload_leon3): New insn.
* config/sparc/sync.md (*membar_storeload_leon3): New insn. (*membar_storeload): Disable for LEON3. From-SVN: r212841
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r--gcc/config/sparc/sync.md10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/config/sparc/sync.md b/gcc/config/sparc/sync.md
index e6e237f256f..98ac0d3d66a 100644
--- a/gcc/config/sparc/sync.md
+++ b/gcc/config/sparc/sync.md
@@ -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")])