The NetBSD Project

CVS log for src/common/lib/libc/arch/arm/atomic/atomic_xor_64.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.3.32.3: download - view: text, markup, annotated - select for diffs
Wed Aug 11 17:05:42 2021 UTC (3 years, 3 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE
Diff to: previous 1.3.32.2: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.32.2: +2 -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.7: download - view: text, markup, annotated - select for diffs
Wed Jul 28 07:32:20 2021 UTC (3 years, 4 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-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: +1 -6 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.6: download - view: text, markup, annotated - select for diffs
Sat Jul 10 06:53:40 2021 UTC (3 years, 5 months ago) by skrll
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -2 lines
s/ifdef _ARM_ARCH_6/if defined(_ARM_ARCH_6)/ for consistency.  NFCI.

Revision 1.3.32.2: download - view: text, markup, annotated - select for diffs
Tue Jul 6 04:11:31 2021 UTC (3 years, 5 months ago) by martin
Branches: netbsd-9
Diff to: previous 1.3.32.1: preferred, colored; branchpoint 1.3: preferred, colored
Changes since revision 1.3.32.1: +3 -3 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.5: download - view: text, markup, annotated - select for diffs
Mon Jun 28 09:00:45 2021 UTC (3 years, 5 months ago) by skrll
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +3 -3 lines
Whitespace

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

Revision 1.3.30.1: download - view: text, markup, annotated - select for diffs
Mon Apr 13 07:45:07 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.3.32.1: download - view: text, markup, annotated - select for diffs
Tue Sep 17 19:25:18 2019 UTC (5 years, 2 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
Pull up following revision(s) (requested by skrll in ticket #202):

	common/lib/libc/arch/arm/atomic/atomic_xor_64.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_or_64.S: revision 1.11

__sync_{,x}or_and_fetch_8 should return new value... make it so.

Revision 1.3.22.1: download - view: text, markup, annotated - select for diffs
Tue Sep 17 18:33:38 2019 UTC (5 years, 2 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE
Diff to: previous 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3: +2 -2 lines
Pull up following revision(s) (requested by skrll in ticket #1375):

	common/lib/libc/arch/arm/atomic/atomic_xor_64.S: revision 1.4
	common/lib/libc/arch/arm/atomic/atomic_or_64.S: revision 1.11

__sync_{,x}or_and_fetch_8 should return new value... make it so.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sun Sep 15 14:55:04 2019 UTC (5 years, 2 months ago) by skrll
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, 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, ad-namecache-base3, ad-namecache-base, ad-namecache
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
__sync_{,x}or_and_fetch_8 should return new value... make it so.

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

Revision 1.3.4.2: download - view: text, markup, annotated - select for diffs
Thu May 22 11:26:28 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.3.4.1: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.4.1: +62 -0 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.3.8.1
Tue Mar 4 16:15:28 2014 UTC (10 years, 9 months ago) by tls
Branches: tls-maxphys
FILE REMOVED
Changes since revision 1.3: +0 -62 lines
file atomic_xor_64.S was added on branch tls-maxphys on 2014-08-19 23:45:12 +0000

Revision 1.3.4.1
Tue Mar 4 16:15:28 2014 UTC (10 years, 9 months ago) by yamt
Branches: yamt-pagecache
FILE REMOVED
Changes since revision 1.3: +0 -62 lines
file atomic_xor_64.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000

Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Mar 4 16:15:28 2014 UTC (10 years, 9 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-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-8-base, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, 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, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: yamt-pagecache, tls-maxphys, phil-wifi, netbsd-9, netbsd-8
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -2 lines
Don't export __sync* if _KERNEL || _STANDALONE are defined.
(except if _RUMPKERNEL is defined)

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Nov 30 21:09:11 2013 UTC (11 years ago) by joerg
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +3 -3 lines
Use explicit form of register pair operations by specifying both.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Fri Nov 8 22:42:52 2013 UTC (11 years, 1 month ago) by matt
Branches: MAIN
Add support for the gcc __sync builtins.
Note that these need earmv6 or later to get the ldrex/strex instructions

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>