diff options
author | Daniel Cederman <cederman@gaisler.com> | 2016-10-04 09:05:04 +0200 |
---|---|---|
committer | Daniel Cederman <cederman@gaisler.com> | 2016-10-04 09:05:04 +0200 |
commit | 38ca68d664702b11ee417afa73363dccd945ceab (patch) | |
tree | 023a07ac249c2a8df67103ef589b27500709c839 /c/src/lib/libcpu/sparc/access/access.S | |
parent | c7d624eedc3995f4554505e565013a5103d37c48 (diff) |
ERRATA-FIX: Change assembler sequence that can cause stst erratarcc-v1.2.20
See GRLIB-TN-0009: "LEON3FT Stale Cache Entry After Store with Data
Tag Parity Error".
Diffstat (limited to 'c/src/lib/libcpu/sparc/access/access.S')
-rw-r--r-- | c/src/lib/libcpu/sparc/access/access.S | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/sparc/access/access.S b/c/src/lib/libcpu/sparc/access/access.S index 7e69f64c9d..e72cebb5b4 100644 --- a/c/src/lib/libcpu/sparc/access/access.S +++ b/c/src/lib/libcpu/sparc/access/access.S @@ -45,6 +45,33 @@ SYM(_ld64): retl ldd [%o0], %o0 +#if defined(__FIX_B2BST) + +SYM(_st8): + stub %o1, [%o0] + retl + nop + +SYM(_st_be16): +SYM(_st16): + stuh %o1, [%o0] + retl + nop + +SYM(_st_be32): +SYM(_st32): + st %o1, [%o0] + retl + nop + +SYM(_st_be64): +SYM(_st64): + std %o1, [%o0] + retl + nop + +#else + SYM(_st8): retl stub %o1, [%o0] @@ -63,3 +90,5 @@ SYM(_st_be64): SYM(_st64): retl std %o1, [%o0] + +#endif |