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


Default branch: MAIN


Revision 1.7 / (download) - annotate - [select for diffs], Sat Aug 6 21:31:33 2022 UTC (18 months, 2 weeks ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Changes since 1.6: +27 -1 lines
Diff to previous 1.6 (colored)

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) - annotate - [select for diffs], Sat Jul 23 13:30:15 2022 UTC (19 months ago) by skrll
Branch: MAIN
Changes since 1.5: +11 -11 lines
Diff to previous 1.5 (colored)

whitespace

Revision 1.5 / (download) - annotate - [select for diffs], Sat Jun 18 08:01:56 2022 UTC (20 months, 1 week ago) by skrll
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored)

be consistent about comparing loaded value against expected old value
register ordering

Revision 1.4 / (download) - annotate - [select for diffs], Sat Jun 18 07:55:19 2022 UTC (20 months, 1 week ago) by skrll
Branch: MAIN
Changes since 1.3: +4 -3 lines
Diff to previous 1.3 (colored)

Fix some register usage

Revision 1.3 / (download) - annotate - [select for diffs], Thu Jun 16 08:21:57 2022 UTC (20 months, 1 week ago) by skrll
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

remove stray 'w'

Revision 1.2 / (download) - annotate - [select for diffs], Sun Aug 8 07:17:18 2021 UTC (2 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.1: +1 -2 lines
Diff to previous 1.1 (colored)

Whitespace

Revision 1.1 / (download) - annotate - [select for diffs], Tue Apr 27 09:14:24 2021 UTC (2 years, 9 months ago) by skrll
Branch: 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.

This form allows you to request diff's 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.




CVSweb <webmaster@jp.NetBSD.org>