diff options
author | Chris Masone <cmasone@google.com> | 2024-02-29 23:29:34 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-02-29 23:29:34 +0000 |
commit | 956e18153f2b8ab38f1fac4ed7f6f054ac91f5e7 (patch) | |
tree | 239a8187b193ec0db28f47f5a3004484de9f5a08 | |
parent | 72cf9673d069ab7c3a09d555aa33dbea7f34cd6e (diff) | |
parent | f1242f942e7b79ca0445bc1172f1788cd968dc64 (diff) | |
download | aemu-956e18153f2b8ab38f1fac4ed7f6f054ac91f5e7.tar.gz |
Merge "Implement Sequence Lock for RISC-V" into main am: f1242f942e
Original change: https://android-review.googlesource.com/c/platform/hardware/google/aemu/+/2980793
Change-Id: If01f7c9289a46a8903b6ebfcd671650ad4643ed6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | base/include/aemu/base/synchronization/Lock.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/base/include/aemu/base/synchronization/Lock.h b/base/include/aemu/base/synchronization/Lock.h index 2b88f05..281a970 100644 --- a/base/include/aemu/base/synchronization/Lock.h +++ b/base/include/aemu/base/synchronization/Lock.h @@ -237,6 +237,8 @@ static inline __attribute__((always_inline)) void SmpWmb() { asm volatile("dmb ishst" ::: "memory"); #elif defined(__x86_64__) std::atomic_thread_fence(std::memory_order_release); +#elif defined(__riscv) && (__riscv_xlen == 64) + std::atomic_thread_fence(std::memory_order_release); #else #error "Unimplemented SmpWmb for current CPU architecture" #endif @@ -247,6 +249,8 @@ static inline __attribute__((always_inline)) void SmpRmb() { asm volatile("dmb ishld" ::: "memory"); #elif defined(__x86_64__) std::atomic_thread_fence(std::memory_order_acquire); +#elif defined(__riscv) && (__riscv_xlen == 64) + std::atomic_thread_fence(std::memory_order_acquire); #else #error "Unimplemented SmpRmb for current CPU architecture" #endif |