aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndreas Larsson <andreas@gaisler.com>2023-01-16 15:43:24 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2024-01-16 12:53:48 +0100
commit13db80cb88f93fb7b06e0ad24ea6b9ecf028282e (patch)
tree99e3f2777236918cf0296ab5089936cc338e772f /gcc
parentcf420e7b98d845323fad8280aea4ede60d3d96fe (diff)
downloadgcc-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.md10
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")])