Merge "Implement Sequence Lock for RISC-V" into main

GitOrigin-RevId: f1242f942e7b79ca0445bc1172f1788cd968dc64
Change-Id: I9218087e4ecaa909fb42b626001e4d945ca384fa
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 @@
         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 @@
         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