The NetBSD Project

CVS log for src/common/lib/libc/arch/arm/atomic/atomic_cas_8.S

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.7.28.2: download - view: text, markup, annotated - select for diffs
Wed Aug 11 17:05:42 2021 UTC (3 years, 5 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE
Diff to: previous 1.7.28.1: preferred, colored; branchpoint 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7.28.1: +10 -7 lines
Pull up following revision(s) (requested by skrll in ticket #1330):

	common/lib/libc/arch/arm/atomic/atomic_swap.S: revision 1.18
	common/lib/libc/arch/arm/atomic/atomic_and_16.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_swap.S: revision 1.19
	common/lib/libc/arch/arm/atomic/atomic_xor_64.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_inc_32.S: revision 1.8
	common/lib/libc/arch/arm/atomic/atomic_and_32.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_add_8.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_xor_64.S: revision 1.7
	common/lib/libc/arch/arm/atomic/atomic_inc_32.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_cas_up.S: revision 1.8
	common/lib/libc/arch/arm/atomic/atomic_add_8.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_op_asm.h: revision 1.9
	common/lib/libc/arch/arm/atomic/membar_ops.S: revision 1.8
	common/lib/libc/arch/arm/atomic/membar_ops.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_op_asm.h: revision 1.10
	common/lib/libc/arch/arm/atomic/atomic_and_32.S: revision 1.10
	common/lib/libc/arch/arm/atomic/atomic_cas_16.S: revision 1.3
	common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_xor_32.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_xor_32.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_nand_64.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_xor_16.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_swap_16.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_nand_64.S: revision 1.7
	common/lib/libc/arch/arm/atomic/atomic_cas_32.S: revision 1.8
	common/lib/libc/arch/arm/atomic/atomic_xor_16.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_swap_16.S: revision 1.7
	common/lib/libc/arch/arm/atomic/atomic_add_32.S: revision 1.10
	common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_dec_64.S: revision 1.8
	common/lib/libc/arch/arm/atomic/atomic_add_16.S: revision 1.4
	common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_xor_8.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_dec_64.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_add_16.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_xor_8.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_or_64.S: revision 1.13
	common/lib/libc/arch/arm/atomic/atomic_add_32.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_or_64.S: revision 1.14
	common/lib/libc/arch/arm/atomic/atomic_or_16.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_or_16.S: revision 1.5
	common/lib/libc/arch/arm/atomic/sync_fetch_and_nand_8.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_nand_16.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_nand_16.S: revision 1.5
	common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_nand_32.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_or_32.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_nand_32.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_cas_8.S: revision 1.9
	common/lib/libc/arch/arm/atomic/atomic_inc_64.S: revision 1.10
	common/lib/libc/arch/arm/atomic/atomic_inc_64.S: revision 1.11
	common/lib/libc/arch/arm/atomic/atomic_cas_64.S: revision 1.12
	common/lib/libc/arch/arm/atomic/sync_bool_compare_and_swap_8.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_or_8.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_dec_32.S: revision 1.6
	common/lib/libc/arch/arm/atomic/atomic_or_8.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_dec_32.S: revision 1.7
	common/lib/libc/arch/arm/atomic/atomic_sub_64.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_sub_64.S: revision 1.5
	common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S: revision 1.6
	common/lib/libc/arch/arm/atomic/sync_bool_compare_and_swap_4.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_and_64.S: revision 1.12
	common/lib/libc/arch/arm/atomic/atomic_or_32.S: revision 1.10
	common/lib/libc/arch/arm/atomic/atomic_and_64.S: revision 1.13
	common/lib/libc/arch/arm/atomic/sync_bool_compare_and_swap_2.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_swap_64.S: revision 1.14
	common/lib/libc/arch/arm/atomic/sync_bool_compare_and_swap_1.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_nand_8.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_and_8.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_add_64.S: revision 1.13
	common/lib/libc/arch/arm/atomic/atomic_nand_8.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_and_8.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_and_16.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_add_64.S: revision 1.14

Give the thumb atomic ops a chance of working

s/ifdef _ARM_ARCH_6/if defined(_ARM_ARCH_6)/ for consistency.  NFCI.

Remove memory barriers from the atomic_ops(3) atomic operations.  They're
not needed for correctness.

Add the correct memory barriers to the gcc legacy __sync built-in
functions for atomic memory access.  From the gcc documentation:

In most cases, these built-in functions are considered a full barrier.

That is, no memory operand is moved across the operation, either forward
or backward. Further, instructions are issued as necessary to prevent the
processor from speculating loads across the operation and from queuing
stores after the operation.

type __sync_lock_test_and_set (type *ptr, type value, ...)
    This built-in function is not a full barrier, but rather an acquire
    barrier. This means that references after the operation cannot move to
    (or be speculated to) before the operation, but previous memory stores
    may not be globally visible yet, and previous memory loads may not yet
    be satisfied.

void __sync_lock_release (type *ptr, ...)
    This built-in function is not a full barrier, but rather a release
    barrier. This means that all previous memory stores are globally
    visible, and all previous memory loads have been satisfied, but
    following memory reads are not prevented from being speculated to
    before the barrier.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Wed Jul 28 07:32:20 2021 UTC (3 years, 5 months ago) by skrll
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-1-RELEASE, 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.8: preferred, colored
Changes since revision 1.8: +10 -7 lines
Remove memory barriers from the atomic_ops(3) atomic operations.  They're
not needed for correctness.

Add the correct memory barriers to the gcc legacy __sync built-in
functions for atomic memory access.  From the gcc documentation:

In most cases, these built-in functions are considered a full barrier.
That is, no memory operand is moved across the operation, either forward
or backward. Further, instructions are issued as necessary to prevent the
processor from speculating loads across the operation and from queuing
stores after the operation.

type __sync_lock_test_and_set (type *ptr, type value, ...)

   This built-in function is not a full barrier, but rather an acquire
   barrier. This means that references after the operation cannot move to
   (or be speculated to) before the operation, but previous memory stores
   may not be globally visible yet, and previous memory loads may not yet
   be satisfied.

void __sync_lock_release (type *ptr, ...)

   This built-in function is not a full barrier, but rather a release
   barrier. This means that all previous memory stores are globally
   visible, and all previous memory loads have been satisfied, but
   following memory reads are not prevented from being speculated to
   before the barrier.

Revision 1.7.28.1: download - view: text, markup, annotated - select for diffs
Tue Jul 6 04:11:31 2021 UTC (3 years, 6 months ago) by martin
Branches: netbsd-9
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -2 lines
Pull up following revision(s) (requested by skrll in ticket #1313):

	common/lib/libc/arch/arm/atomic/atomic_xor_64.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_nand_64.S: revision 1.5
	common/lib/libc/arch/arm/atomic/atomic_or_64.S: revision 1.12
	common/lib/libc/arch/arm/atomic/atomic_cas_8.S: revision 1.8
	common/lib/libc/arch/arm/atomic/atomic_sub_64.S: revision 1.3
	common/lib/libc/arch/arm/atomic/atomic_and_64.S: revision 1.11
	common/lib/libc/arch/arm/atomic/atomic_swap_64.S: revision 1.13
	common/lib/libc/arch/arm/atomic/atomic_add_64.S: revision 1.12

Whitespace

Revision 1.8: download - view: text, markup, annotated - select for diffs
Tue Jun 29 06:28:07 2021 UTC (3 years, 6 months ago) by skrll
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -2 lines
Whitespace

Revision 1.7.26.2: download - view: text, markup, annotated - select for diffs
Tue Apr 21 19:37:42 2020 UTC (4 years, 9 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.7.26.1: preferred, colored; branchpoint 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7.26.1: +0 -0 lines
Ooops, restore accidently removed files from merge mishap

Revision 1.7.26.1
Tue Apr 21 18:41:15 2020 UTC (4 years, 9 months ago) by martin
Branches: phil-wifi
FILE REMOVED
Changes since revision 1.7: +1 -1 lines
Sync with HEAD

Revision 1.3.2.2: download - view: text, markup, annotated - select for diffs
Tue Aug 19 23:45:12 2014 UTC (10 years, 5 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.3.2.1: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.2.1: +15 -9 lines
Rebase to HEAD as of a few days ago.

Revision 1.1.8.2: download - view: text, markup, annotated - select for diffs
Thu May 22 11:26:28 2014 UTC (10 years, 8 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.1.8.1: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.8.1: +15 -9 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.7: download - view: text, markup, annotated - select for diffs
Tue Mar 4 16:15:28 2014 UTC (10 years, 10 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base9, tls-maxphys-base, tls-maxphys-20171202, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, ad-namecache-base3, ad-namecache-base, ad-namecache
Branch point for: phil-wifi, netbsd-9
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -2 lines
Don't export __sync* if _KERNEL || _STANDALONE are defined.
(except if _RUMPKERNEL is defined)

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Nov 8 22:42:52 2013 UTC (11 years, 2 months ago) by matt
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +4 -2 lines
Add support for the gcc __sync builtins.
Note that these need earmv6 or later to get the ldrex/strex instructions

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Aug 10 19:59:21 2013 UTC (11 years, 5 months ago) by matt
Branches: MAIN
CVS tags: rmind-smpnet-nbase, rmind-smpnet-base
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +12 -8 lines
Make these under Thumb2

Revision 1.1.12.1: download - view: text, markup, annotated - select for diffs
Tue Nov 27 23:42:35 2012 UTC (12 years, 1 month ago) by matt
Branches: matt-nb6-plus
Diff to: previous 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1: +26 -30 lines
Pull atomic ops from HEAD.

Revision 1.3.2.1: download - view: text, markup, annotated - select for diffs
Tue Nov 20 02:57:29 2012 UTC (12 years, 2 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
Resync to 2012-11-19 00:00:00 UTC

Revision 1.1.8.1: download - view: text, markup, annotated - select for diffs
Tue Oct 30 18:46:10 2012 UTC (12 years, 2 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +26 -30 lines
sync with head

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Oct 29 14:09:38 2012 UTC (12 years, 2 months ago) by chs
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, matt-nb6-plus-nbase, matt-nb6-plus-base, khorben-n900, agc-symver-base, agc-symver
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
_ARCH_ARM_6 -> _ARM_ARCH_6

Revision 1.3: download - view: text, markup, annotated - select for diffs
Fri Aug 31 23:41:52 2012 UTC (12 years, 4 months ago) by matt
Branches: MAIN
Branch point for: tls-maxphys
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +7 -2 lines
Add dmb/dsb instructions as required by the armv7 arch man.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Thu Aug 16 16:49:10 2012 UTC (12 years, 5 months ago) by matt
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +22 -31 lines
Actually use the assembly version of the atomic function if compiling
for armv6 or armv7 cpus.  Use atomic_cas_ptr instead of _lock_cas so
we pick up the assembly version when it's used.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Nov 18 15:22:56 2008 UTC (16 years, 2 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base11, yamt-nfs-mp-base10, rmind-uvmplock-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-premerge-20091211, matt-mips64-premerge-20101231, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, matt-nb6-plus
Add an atomic_cas_8 which uses ldrex/strex.

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>