The NetBSD Project

CVS log for src/common/lib/libc/arch/powerpc/atomic/atomic_cas.S

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.10 / (download) - annotate - [select for diffs], Wed Apr 6 22:47:56 2022 UTC (10 months ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10, HEAD
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

Nix trailing whitespace in files of membars, atomics, and lock stubs.

Will be touching many of these files soon for functional changes.

No functional change intended.

Revision 1.8.26.2, Tue Apr 21 18:41:19 2020 UTC (2 years, 9 months ago) by martin
Branch: phil-wifi
Changes since 1.8.26.1: +2 -2 lines
FILE REMOVED

Sync with HEAD

Revision 1.8.26.1 / (download) - annotate - [select for diffs], Wed Apr 8 14:03:05 2020 UTC (2 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.8: +3 -2 lines
Diff to previous 1.8 (colored)

Merge changes from current as of 20200406

Revision 1.8.28.1 / (download) - annotate - [select for diffs], Tue Mar 3 18:54:59 2020 UTC (2 years, 11 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE
Changes since 1.8: +3 -2 lines
Diff to previous 1.8 (colored) next main 1.9 (colored)

Pull up following revision(s) (requested by rin in ticket #755):

	sys/arch/evbppc/conf/std.virtex: revision 1.4
	sys/arch/powerpc/powerpc/trap_subr.S: revision 1.81
	sys/arch/powerpc/ibm4xx/4xx_trap_subr.S: revision 1.8
	sys/arch/evbppc/conf/std.walnut: revision 1.9
	common/lib/libc/arch/powerpc/atomic/atomic_op_asm.h: revision 1.7
	sys/arch/powerpc/include/asm.h: revision 1.49
	common/lib/libc/arch/powerpc/atomic/atomic_cas.S: revision 1.9
	sys/arch/powerpc/ibm4xx/trap_subr.S: revision 1.28
	sys/arch/powerpc/include/lock.h: revision 1.15
	sys/arch/evbppc/conf/std.obs266: revision 1.3
	common/lib/libc/arch/powerpc/atomic/atomic_swap.S: revision 1.8
	sys/arch/powerpc/powerpc/locore_subr.S: revision 1.61
	sys/arch/powerpc/powerpc/lock_stubs.S: revision 1.12
	sys/arch/evbppc/conf/std.obs200: revision 1.5

Implement workaround for IBM405 Errata 77 (aka CPU_210), where
interrupted stwcx. may errantly write data to memory:

     https://elinux.org/images/1/1d/Ppc405gp-errata.pdf

This is because stwcx. is split into two pieces in the pipeline.

We need to
(1) insert dcbt before every stwcx. instruction, as well as
(2) insert sync before every rfi/rfci instruction.

It is unclear which processors are affected, but according to Linux,
all 405-based cores up until 405GPR and 405EP are affected:

     https://github.com/torvalds/linux/blob/master/arch/powerpc/platforms/40x/Kconfig#L140

For kernel, this workaround can be restricted to affected processors.

However, for kernel modules and userland, we have to enable it for all
32bit powerpc archs in order to share common binaries as before.
Proposed on port-powerpc:

     http://mail-index.netbsd.org/port-powerpc/2020/02/21/msg003583.html

Revision 1.9 / (download) - annotate - [select for diffs], Sun Mar 1 23:23:36 2020 UTC (2 years, 11 months ago) by rin
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, 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
Changes since 1.8: +3 -2 lines
Diff to previous 1.8 (colored)

Implement workaround for IBM405 Errata 77 (aka CPU_210), where
interrupted stwcx. may errantly write data to memory:

    https://elinux.org/images/1/1d/Ppc405gp-errata.pdf

This is because stwcx. is split into two pieces in the pipeline.

We need to
(1) insert dcbt before every stwcx. instruction, as well as
(2) insert sync before every rfi/rfci instruction.

It is unclear which processors are affected, but according to Linux,
all 405-based cores up until 405GPR and 405EP are affected:

    https://github.com/torvalds/linux/blob/master/arch/powerpc/platforms/40x/Kconfig#L140

For kernel, this workaround can be restricted to affected processors.
However, for kernel modules and userland, we have to enable it for all
32bit powerpc archs in order to share common binaries as before.

Proposed on port-powerpc:

    http://mail-index.netbsd.org/port-powerpc/2020/02/21/msg003583.html

Revision 1.7.12.1 / (download) - annotate - [select for diffs], Tue Aug 19 23:45:13 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-maxphys
Changes since 1.7: +48 -19 lines
Diff to previous 1.7 (colored) next main 1.8 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.7.6.1 / (download) - annotate - [select for diffs], Thu May 22 11:26:29 2014 UTC (8 years, 8 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.7: +49 -20 lines
Diff to previous 1.7 (colored) next main 1.8 (colored)

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.8 / (download) - annotate - [select for diffs], Fri Mar 7 07:17:54 2014 UTC (8 years, 11 months ago) by matt
Branch: 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-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-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-8-base, 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, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, ad-namecache-base3, ad-namecache-base, ad-namecache
Branch point for: phil-wifi, netbsd-9
Changes since 1.7: +49 -20 lines
Diff to previous 1.7 (colored)

Reduce duplication.
Use beqlr to quicken returns

Revision 1.7 / (download) - annotate - [select for diffs], Sat Jan 15 07:31:11 2011 UTC (12 years ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, 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-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys
Changes since 1.6: +4 -2 lines
Diff to previous 1.6 (colored)

Use END(foo) everywhere.
Make __cerror hidden.
Use non-PLT calls to __cerror.
Use assym.h when appropriate.
Use addi to adjust stack instead of loading it.
Add __RCSIDs
Force -D_NOREGNAMES for all .S files.
[this is all in preperation for secure plt support]

Revision 1.5.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:26:45 2008 UTC (14 years, 7 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored) next main 1.6 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.4.4.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:02:58 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.4.4.1: +2 -2 lines
Diff to previous 1.4.4.1 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with head

Revision 1.6 / (download) - annotate - [select for diffs], Sun May 25 15:56:12 2008 UTC (14 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, 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, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, rmind-uvmplock-base, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-premerge-20091211, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-premerge-20101231, matt-mips64-base2, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored)

enable profiling of assembly functions.

Revision 1.4.4.1 / (download) - annotate - [select for diffs], Sun May 18 12:28:45 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.4: +1 -8 lines
Diff to previous 1.4 (colored)

sync with head.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Apr 28 20:22:52 2008 UTC (14 years, 9 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.4: +1 -8 lines
Diff to previous 1.4 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.2.4.3 / (download) - annotate - [select for diffs], Sun Mar 23 00:12:42 2008 UTC (14 years, 10 months ago) by matt
Branch: matt-armv6
Changes since 1.2.4.2: +18 -6 lines
Diff to previous 1.2.4.2 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored)

sync with HEAD

Revision 1.4 / (download) - annotate - [select for diffs], Tue Feb 12 07:58:01 2008 UTC (14 years, 11 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base
Branch point for: yamt-pf42
Changes since 1.3: +5 -5 lines
Diff to previous 1.3 (colored)

Use %rN as all new code is supposed to.

Revision 1.3 / (download) - annotate - [select for diffs], Sun Feb 10 13:40:31 2008 UTC (15 years ago) by ad
Branch: MAIN
Changes since 1.2: +14 -2 lines
Diff to previous 1.2 (colored)

Add atomic_cas_foo_ni().

Revision 1.2.4.2 / (download) - annotate - [select for diffs], Wed Jan 9 01:21:00 2008 UTC (15 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.2.4.1: +59 -0 lines
Diff to previous 1.2.4.1 (colored) to branchpoint 1.2 (colored)

sync with HEAD

Revision 1.2.4.1, Wed Nov 28 21:39:49 2007 UTC (15 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.2: +0 -59 lines
FILE REMOVED

file atomic_cas.S was added on branch matt-armv6 on 2008-01-09 01:21:00 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Wed Nov 28 21:39:49 2007 UTC (15 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, matt-armv6-base, cube-autoconf-base, cube-autoconf
Branch point for: matt-armv6
Changes since 1.1: +59 -0 lines
Diff to previous 1.1 (colored)

Atomic ops for powerpc. Please review.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Thu Apr 26 17:45:31 2007 UTC (15 years, 9 months ago) by thorpej
Branch: thorpej-atomic
Changes since 1.1.2.1: +3 -1 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

First-cut at powerpc64 atomic ops.

Revision 1.1.2.1 / (download) - annotate - [select for diffs], Thu Apr 26 05:47:12 2007 UTC (15 years, 9 months ago) by thorpej
Branch: thorpej-atomic
Changes since 1.1: +57 -0 lines
Diff to previous 1.1 (colored)

W-I-P atomic ops for powerpc.  No memory barrier ops yet.

Revision 1.1, Thu Apr 26 05:47:12 2007 UTC (15 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-idlelwp-base8, hpcarm-cleanup
Branch point for: thorpej-atomic
FILE REMOVED

file atomic_cas.S was initially added on branch thorpej-atomic.

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>