diff options
author | Andreas Larsson <andreas@gaisler.com> | 2023-01-16 15:43:24 +0100 |
---|---|---|
committer | Daniel Hellstrom <daniel@gaisler.com> | 2024-01-16 12:53:48 +0100 |
commit | 13db80cb88f93fb7b06e0ad24ea6b9ecf028282e (patch) | |
tree | 99e3f2777236918cf0296ab5089936cc338e772f /gcc | |
parent | cf420e7b98d845323fad8280aea4ede60d3d96fe (diff) | |
download | gcc-13db80cb88f93fb7b06e0ad24ea6b9ecf028282e.zip gcc-13db80cb88f93fb7b06e0ad24ea6b9ecf028282e.tar.gz gcc-13db80cb88f93fb7b06e0ad24ea6b9ecf028282e.tar.bz2 |
sparc: Revert membar optimization that is not suitable for LEON5
LEON5 has a deeper write-buffer and hence stb is not enough to flush a
write out. For compatibility, use the default V8 approach for both
LEON3 and LEON5.
This reverts commit 49cc765db35a5a21cab2aece27a44983fa70b94b,
"sync.md (*membar_storeload_leon3): New insn."
gcc/ChangeLog:
* config/sparc/sync.md (*membar_storeload_leon3): Remove
(*membar_storeload): Enable for LEON
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sparc/sync.md | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/gcc/config/sparc/sync.md b/gcc/config/sparc/sync.md index 8808ed5..ac29142 100644 --- a/gcc/config/sparc/sync.md +++ b/gcc/config/sparc/sync.md @@ -64,19 +64,11 @@ "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_LEON3" + "TARGET_V8" "ldstub\t[%%sp-1], %%g0" [(set_attr "type" "multi")]) |