Open Bug 1077321 Opened 10 years ago Updated 2 years ago

ARM: Optimize JS atomics code for ARMv8

Categories

(Core :: JavaScript Engine: JIT, defect, P5)

ARM
All
defect

Tracking

()

People

(Reporter: lth, Unassigned)

References

(Blocks 1 open bug)

Details

Followup work on bug 979594.

On ARMv8 there are new load-acquire-exclusive and store-release-exclusive instructions (for AArch32 as well as AArch64) that may allow us to generate better code for atomic compareExchange, add, sub, and, or, and xor.  Specifically, it may be possible to remove one or both fences that are associated with these operations.
Priority: -- → P5
Blocks: 1317626
No longer blocks: shared-array-buffer
Shu and Conrad say that we have to adjust the memory model in JS slightly to allow seq_cst loads and stores to be compiled to LDA / STL without any fences at all, but it sounds like this will actually happen.

(Shu also says "V8 and JSC have patches in flight to enable emitting bare LDA and STL for JS and wasm atomics."  So there's that.)
Blocks: 1687630

Note also there are new CAS instructions in ARMv8.1.

No longer blocks: 1687630
Summary: ARM: Optimize atomics code for ARMv8 → ARM: Optimize JS atomics code for ARMv8
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.