:: commit f69b2b5c67bd9d8d9e6b8178162e582e513e0c9a

Mintsuki <mintsuki@protonmail.com> — 2026-04-14 12:39

parents: 57d8647e55

sys/cpu: Add memory clobber to LoongArch IOCSR accessors

diff --git a/common/sys/cpu.h b/common/sys/cpu.h
index 11550638..e925ddda 100644
--- a/common/sys/cpu.h
+++ b/common/sys/cpu.h
@@ -433,6 +433,7 @@ static inline uint32_t iocsr_read32(uint64_t reg) {
         "iocsrrd.w %0, %1"
         : "=r"(val)
         : "r"(reg)
+        : "memory"
     );
     return val;
 }
@@ -442,6 +443,7 @@ static inline void iocsr_write32(uint32_t val, uint64_t reg) {
         "iocsrwr.w %0, %1"
         :
         : "r"(val), "r"(reg)
+        : "memory"
     );
 }
 
@@ -451,6 +453,7 @@ static inline uint64_t iocsr_read64(uint64_t reg) {
         "iocsrrd.d %0, %1"
         : "=r"(val)
         : "r"(reg)
+        : "memory"
     );
     return val;
 }
@@ -460,6 +463,7 @@ static inline void iocsr_write64(uint64_t val, uint64_t reg) {
         "iocsrwr.d %0, %1"
         :
         : "r"(val), "r"(reg)
+        : "memory"
     );
 }
 
tab: 248 wrap: offon