ARM64: Implement AtomicsOperations

RESOLVED FIXED in Firefox 42

Status

()

Core
JavaScript Engine: JIT
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: sstangl, Assigned: sstangl)

Tracking

unspecified
mozilla42
Points:
---

Firefox Tracking Flags

(firefox42 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

3 years ago
Created attachment 8643973 [details] [diff] [review]
0001-Fill-in-AtomicOperations-arm64.h-assuming-a-modern-c.patch

Fills in jit/arm64/AtomicOperations-arm64.h. Since ARM64 requires the use of a modern compiler, the code just assumes the availability of __atomic_foo.

Fixes:
asm.js/testAtomics.js
asm.js/testAtomic-effect.js
asm.js/testBug1164931.js
asm.js/testBug1183060.js
atomics/optimization-tests.js
atomics/basic-tests.js
Attachment #8643973 - Flags: review?(lhansen)

Comment 1

3 years ago
Comment on attachment 8643973 [details] [diff] [review]
0001-Fill-in-AtomicOperations-arm64.h-assuming-a-modern-c.patch

Review of attachment 8643973 [details] [diff] [review]:
-----------------------------------------------------------------

Yes.  For extra credit, add these assertions to the start of isLockfree8:

    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0));
    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0));
    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0));

The reason is that I don't want somebody to accidentally copy this code to a platform where those don't hold and not discover it.
Attachment #8643973 - Flags: review?(lhansen) → review+
https://hg.mozilla.org/mozilla-central/rev/47e690b422fa
Status: NEW → RESOLVED
Last Resolved: 3 years ago
status-firefox42: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in before you can comment on or make changes to this bug.