⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 293313 in webkit


Ignore:
Timestamp:
Apr 24, 2022, 11:29:19 PM (4 years ago)
Author:
zan@falconsigh.net
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):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r293279 r293313  
     12022-04-24  Zan Dobersek  <zdobersek@igalia.com>
     2
     3        [RISCV64] Implement MacroAssemblerRISCV64 fencing methods
     4        https://bugs.webkit.org/show_bug.cgi?id=239706
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        Provide MacroAssemblerRISCV64 implementations for the tree fencing
     9        methods, using the `fence` instruction but with different corresponding
     10        combinations of the predecessor and successor operation sets.
     11
     12        * assembler/MacroAssemblerRISCV64.h:
     13        (JSC::MacroAssemblerRISCV64::memoryFence):
     14        (JSC::MacroAssemblerRISCV64::storeFence):
     15        (JSC::MacroAssemblerRISCV64::loadFence):
     16
    1172022-04-22  Diego Pino Garcia  <dpino@igalia.com>
    218
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerRISCV64.h

    r293093 r293313  
    32863286    }
    32873287
    3288     void memoryFence() { }
    3289     void storeFence() { }
    3290     void loadFence() { }
     3288    void memoryFence()
     3289    {
     3290        m_assembler.fenceInsn({ RISCV64Assembler::MemoryOperation::RW }, { RISCV64Assembler::MemoryOperation::RW });
     3291    }
     3292
     3293    void storeFence()
     3294    {
     3295        m_assembler.fenceInsn({ RISCV64Assembler::MemoryOperation::W }, { RISCV64Assembler::MemoryOperation::RW });
     3296    }
     3297
     3298    void loadFence()
     3299    {
     3300        m_assembler.fenceInsn({ RISCV64Assembler::MemoryOperation::R }, { RISCV64Assembler::MemoryOperation::RW });
     3301    }
    32913302
    32923303    MACRO_ASSEMBLER_RISCV64_TEMPLATED_NOOP_METHOD_WITH_RETURN(branchAtomicWeakCAS8, JumpList);
Note: See TracChangeset for help on using the changeset viewer.