The NetBSD Project

CVS log for src/common/lib/libc/arch/aarch64/atomic/__aarch64_lse.S

[BACK] Up to [cvs.NetBSD.org] / src / common / lib / libc / arch / aarch64 / atomic

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.7: download - view: text, markup, annotated - select for diffs
Sat Aug 6 21:31:33 2022 UTC (2 years, 4 months ago) by riastradh
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +27 -1 lines
aarch64: Implement __aarch64_casN_sync.

gcc generates calls to this symbol in programs that use
__sync_*_compare_and_swap, which require full sequential consistency
barriers, including store-before-load ordering on both sides of the
atomic; none of the release/acquire operations guarantee that, so we
have to insert explicit DMB instructions.

Note: gcc's own definition omits some of the DMB instructions, but I
can't prove that it's correct that way -- stores preceding the CAS
must complete before the load part of the CAS, and the store part of
the CAS must complete before loads following the CAS.  Maybe there's
some way to prove that one of these orderings is guaranteed some
other way than a DMB but I'm not seeing it, and store-before-load
ordering is hard to understand.

Patch by skrll@ based on a patch by mrg@, soliloquy in commit message
by me.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sat Jul 23 13:30:15 2022 UTC (2 years, 4 months ago) by skrll
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +11 -11 lines
whitespace

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Jun 18 08:01:56 2022 UTC (2 years, 5 months ago) by skrll
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +3 -3 lines
be consistent about comparing loaded value against expected old value
register ordering

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sat Jun 18 07:55:19 2022 UTC (2 years, 5 months ago) by skrll
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +4 -3 lines
Fix some register usage

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Jun 16 08:21:57 2022 UTC (2 years, 5 months ago) by skrll
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -2 lines
remove stray 'w'

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Aug 8 07:17:18 2021 UTC (3 years, 4 months ago) by skrll
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +1 -2 lines
Whitespace

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Apr 27 09:14:24 2021 UTC (3 years, 7 months ago) by skrll
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Provide all the LSE operation fuctions.  The use of LSE instructions is
currently disabled.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>