Title: [293313] trunk/Source/_javascript_Core
- Revision
- 293313
- Author
- [email protected]
- Date
- 2022-04-24 23:29:19 -0700 (Sun, 24 Apr 2022)
Log Message
[RISCV64] Implement MacroAssemblerRISCV64 fencing methods
https://bugs.webkit.org/show_bug.cgi?id=239706
Reviewed by Yusuke Suzuki.
Provide MacroAssemblerRISCV64 implementations for the tree fencing
methods, using the `fence` instruction but with different corresponding
combinations of the predecessor and successor operation sets.
* assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::memoryFence):
(JSC::MacroAssemblerRISCV64::storeFence):
(JSC::MacroAssemblerRISCV64::loadFence):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (293312 => 293313)
--- trunk/Source/_javascript_Core/ChangeLog 2022-04-25 06:26:33 UTC (rev 293312)
+++ trunk/Source/_javascript_Core/ChangeLog 2022-04-25 06:29:19 UTC (rev 293313)
@@ -1,3 +1,19 @@
+2022-04-24 Zan Dobersek <[email protected]>
+
+ [RISCV64] Implement MacroAssemblerRISCV64 fencing methods
+ https://bugs.webkit.org/show_bug.cgi?id=239706
+
+ Reviewed by Yusuke Suzuki.
+
+ Provide MacroAssemblerRISCV64 implementations for the tree fencing
+ methods, using the `fence` instruction but with different corresponding
+ combinations of the predecessor and successor operation sets.
+
+ * assembler/MacroAssemblerRISCV64.h:
+ (JSC::MacroAssemblerRISCV64::memoryFence):
+ (JSC::MacroAssemblerRISCV64::storeFence):
+ (JSC::MacroAssemblerRISCV64::loadFence):
+
2022-04-22 Diego Pino Garcia <[email protected]>
Unreviewed, non-unified build fixes after r293203
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerRISCV64.h (293312 => 293313)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerRISCV64.h 2022-04-25 06:26:33 UTC (rev 293312)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerRISCV64.h 2022-04-25 06:29:19 UTC (rev 293313)
@@ -3285,10 +3285,21 @@
m_assembler.addiInsn(RISCV64Registers::zero, RISCV64Registers::zero, Imm::I<0>());
}
- void memoryFence() { }
- void storeFence() { }
- void loadFence() { }
+ void memoryFence()
+ {
+ m_assembler.fenceInsn({ RISCV64Assembler::MemoryOperation::RW }, { RISCV64Assembler::MemoryOperation::RW });
+ }
+ void storeFence()
+ {
+ m_assembler.fenceInsn({ RISCV64Assembler::MemoryOperation::W }, { RISCV64Assembler::MemoryOperation::RW });
+ }
+
+ void loadFence()
+ {
+ m_assembler.fenceInsn({ RISCV64Assembler::MemoryOperation::R }, { RISCV64Assembler::MemoryOperation::RW });
+ }
+
MACRO_ASSEMBLER_RISCV64_TEMPLATED_NOOP_METHOD_WITH_RETURN(branchAtomicWeakCAS8, JumpList);
MACRO_ASSEMBLER_RISCV64_TEMPLATED_NOOP_METHOD_WITH_RETURN(branchAtomicWeakCAS16, JumpList);
MACRO_ASSEMBLER_RISCV64_TEMPLATED_NOOP_METHOD_WITH_RETURN(branchAtomicWeakCAS32, JumpList);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes