diff options
author | Daniel Cederman <cederman@gaisler.com> | 2014-07-19 10:41:03 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2014-07-19 10:41:03 +0000 |
commit | 49cc765db35a5a21cab2aece27a44983fa70b94b (patch) | |
tree | 10d97dd8a149186db1d203a9bfb8786ed7439fba /gcc/config/sparc | |
parent | 90fe3cc61f3cde37a082c78aaee6b0ce108b285e (diff) | |
download | gcc-49cc765db35a5a21cab2aece27a44983fa70b94b.zip gcc-49cc765db35a5a21cab2aece27a44983fa70b94b.tar.gz gcc-49cc765db35a5a21cab2aece27a44983fa70b94b.tar.bz2 |
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.md | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/config/sparc/sync.md b/gcc/config/sparc/sync.md index e6e237f..98ac0d3 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")]) |