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"
);
}
