Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Preliminary files for AARCH64 (64-bit ARM) support.
details: https://anonhg.NetBSD.org/src/rev/da40b96f6142
branches: trunk
changeset: 331374:da40b96f6142
user: matt <matt%NetBSD.org@localhost>
date: Sun Aug 10 05:47:35 2014 +0000
description:
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
diffstat:
common/lib/libc/arch/aarch64/atomic/Makefile.inc | 25 +
common/lib/libc/arch/aarch64/atomic/atomic_add_16.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_add_32.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_add_64.S | 50 +
common/lib/libc/arch/aarch64/atomic/atomic_add_8.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_and_16.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_and_32.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_and_64.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_and_8.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_cas_16.S | 48 +
common/lib/libc/arch/aarch64/atomic/atomic_cas_32.S | 52 +
common/lib/libc/arch/aarch64/atomic/atomic_cas_64.S | 55 +
common/lib/libc/arch/aarch64/atomic/atomic_cas_8.S | 48 +
common/lib/libc/arch/aarch64/atomic/atomic_dec_32.S | 59 +
common/lib/libc/arch/aarch64/atomic/atomic_dec_64.S | 63 +
common/lib/libc/arch/aarch64/atomic/atomic_inc_32.S | 59 +
common/lib/libc/arch/aarch64/atomic/atomic_inc_64.S | 63 +
common/lib/libc/arch/aarch64/atomic/atomic_nand_16.S | 64 +
common/lib/libc/arch/aarch64/atomic/atomic_nand_32.S | 64 +
common/lib/libc/arch/aarch64/atomic/atomic_nand_64.S | 64 +
common/lib/libc/arch/aarch64/atomic/atomic_nand_8.S | 64 +
common/lib/libc/arch/aarch64/atomic/atomic_op_asm.h | 135 +
common/lib/libc/arch/aarch64/atomic/atomic_or_16.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_or_32.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_or_64.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_or_8.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_sub_16.S | 50 +
common/lib/libc/arch/aarch64/atomic/atomic_sub_32.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_sub_64.S | 50 +
common/lib/libc/arch/aarch64/atomic/atomic_sub_8.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S | 53 +
common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S | 51 +
common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S | 53 +
common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S | 53 +
common/lib/libc/arch/aarch64/atomic/atomic_xor_16.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_xor_32.S | 46 +
common/lib/libc/arch/aarch64/atomic/atomic_xor_64.S | 44 +
common/lib/libc/arch/aarch64/atomic/atomic_xor_8.S | 46 +
common/lib/libc/arch/aarch64/atomic/membar_ops.S | 55 +
common/lib/libc/arch/aarch64/gen/byte_swap_2.S | 47 +
common/lib/libc/arch/aarch64/gen/byte_swap_4.S | 47 +
common/lib/libc/arch/aarch64/gen/byte_swap_8.S | 47 +
common/lib/libc/arch/aarch64/gen/clzdi2.S | 10 +
common/lib/libc/arch/aarch64/gen/ctzdi2.S | 11 +
common/lib/libc/arch/aarch64/gen/ffsdi2.S | 14 +
common/lib/libc/arch/aarch64/string/memcmp.S | 187 +
common/lib/libc/arch/aarch64/string/memcpy.S | 126 +
common/lib/libc/arch/aarch64/string/memset.S | 200 +
common/lib/libc/arch/aarch64/string/strcat.S | 57 +
common/lib/libc/arch/aarch64/string/strlen.S | 113 +
common/lib/libc/arch/aarch64/string/strnlen.S | 5 +
distrib/evbarm64/ramdisk/Makefile | 40 +
distrib/evbarm64/ramdisk/dot.profile | 64 +
distrib/evbarm64/ramdisk/list | 86 +
distrib/sets/lists/base/ad.aarch64 | 657 +
distrib/sets/lists/comp/ad.aarch64 | 634 +
distrib/sets/lists/debug/ad.aarch64 | 332 +
distrib/sets/lists/modules/ad.aarch64 | 3 +
distrib/sets/lists/tests/ad.aarch64 | 3 +
distrib/utils/sysinst/arch/evbarm64/Makefile | 10 +
distrib/utils/sysinst/arch/evbarm64/md.c | 323 +
distrib/utils/sysinst/arch/evbarm64/md.h | 82 +
etc/etc.aarch64/MAKEDEV.conf | 29 +
etc/etc.aarch64/ttys | 20 +
etc/mtree/NetBSD.dist.aarch64 | 24 +
external/gpl3/binutils/dist/ld/emulparams/aarch64nbsd.sh | 36 +
external/gpl3/binutils/dist/ld/emulparams/aarch64nbsdb.sh | 2 +
external/gpl3/binutils/lib/libbfd/arch/aarch64/bfd.h | 6712 ++++++++++
external/gpl3/binutils/lib/libbfd/arch/aarch64/bfd_stdint.h | 51 +
external/gpl3/binutils/lib/libbfd/arch/aarch64/bfdver.h | 8 +
external/gpl3/binutils/lib/libbfd/arch/aarch64/config.h | 378 +
external/gpl3/binutils/lib/libbfd/arch/aarch64/defs.mk | 9 +
external/gpl3/binutils/lib/libiberty/arch/aarch64/config.h | 501 +
external/gpl3/binutils/lib/libiberty/arch/aarch64/defs.mk | 8 +
external/gpl3/binutils/lib/libopcodes/arch/aarch64/config.h | 124 +
external/gpl3/binutils/lib/libopcodes/arch/aarch64/defs.mk | 7 +
external/gpl3/binutils/usr.bin/common/arch/aarch64/config.h | 272 +
external/gpl3/binutils/usr.bin/common/arch/aarch64/defs.mk | 36 +
external/gpl3/binutils/usr.bin/gas/arch/aarch64/config.h | 367 +
external/gpl3/binutils/usr.bin/gas/arch/aarch64/defs.mk | 8 +
external/gpl3/binutils/usr.bin/gas/arch/aarch64/itbl-cpu.h | 5 +
external/gpl3/binutils/usr.bin/gas/arch/aarch64/obj-format.h | 5 +
external/gpl3/binutils/usr.bin/gas/arch/aarch64/targ-cpu.h | 5 +
external/gpl3/binutils/usr.bin/gas/arch/aarch64/targ-env.h | 5 +
external/gpl3/binutils/usr.bin/gprof/arch/aarch64/defs.mk | 8 +
external/gpl3/binutils/usr.bin/gprof/arch/aarch64/gconfig.h | 118 +
external/gpl3/binutils/usr.bin/ld/arch/aarch64/config.h | 242 +
external/gpl3/binutils/usr.bin/ld/arch/aarch64/defs.mk | 13 +
external/gpl3/binutils/usr.bin/ld/arch/aarch64/ldemul-list.h | 24 +
lib/csu/arch/aarch64/Makefile.inc | 5 +
lib/csu/arch/aarch64/crt0.S | 44 +
lib/csu/arch/aarch64/crtbegin.h | 35 +
lib/csu/arch/aarch64/crtend.S | 48 +
lib/csu/arch/aarch64/crti.S | 41 +
lib/csu/arch/aarch64/crtn.S | 3 +
lib/libc/arch/aarch64/Makefile.inc | 22 +
lib/libc/arch/aarch64/SYS.h | 79 +
lib/libc/arch/aarch64/gdtoa/Makefile.inc | 5 +
lib/libc/arch/aarch64/gdtoa/arith.h | 7 +
lib/libc/arch/aarch64/gdtoa/gd_qnan.h | 18 +
lib/libc/arch/aarch64/gen/Makefile.inc | 31 +
lib/libc/arch/aarch64/gen/_lwp.c | 64 +
lib/libc/arch/aarch64/gen/_setjmp.S | 117 +
lib/libc/arch/aarch64/gen/fabs_ieee754.S | 39 +
lib/libc/arch/aarch64/gen/flt_rounds.c | 68 +
lib/libc/arch/aarch64/gen/makecontext.c | 76 +
lib/libc/arch/aarch64/gen/nanf.c | 18 +
lib/libc/arch/aarch64/gen/resumecontext.c | 54 +
lib/libc/arch/aarch64/gen/setjmp.S | 133 +
lib/libc/arch/aarch64/gen/sigsetjmp.S | 52 +
lib/libc/arch/aarch64/gen/swapcontext.S | 64 +
lib/libc/arch/aarch64/genassym.cf | 65 +
lib/libc/arch/aarch64/net/Makefile.inc | 3 +
lib/libc/arch/aarch64/softfloat/aarch64-gcc.h | 89 +
lib/libc/arch/aarch64/softfloat/milieu.h | 48 +
lib/libc/arch/aarch64/softfloat/qp.c | 378 +
lib/libc/arch/aarch64/softfloat/softfloat-qp.h | 88 +
lib/libc/arch/aarch64/softfloat/softfloat-wrapper.c | 1 +
lib/libc/arch/aarch64/softfloat/softfloat.h | 305 +
lib/libc/arch/aarch64/stdlib/Makefile.inc | 1 +
lib/libc/arch/aarch64/string/Makefile.inc | 1 +
lib/libc/arch/aarch64/sys/__clone.S | 78 +
lib/libc/arch/aarch64/sys/__sigaction14_sigtramp.c | 79 +
lib/libc/arch/aarch64/sys/__sigtramp2.S | 50 +
lib/libc/arch/aarch64/sys/__syscall.S | 71 +
lib/libc/arch/aarch64/sys/__vfork14.S | 48 +
lib/libc/arch/aarch64/sys/brk.S | 72 +
lib/libc/arch/aarch64/sys/cerror.S | 47 +
lib/libc/arch/aarch64/sys/exect.S | 36 +
lib/libc/arch/aarch64/sys/fork.S | 46 +
lib/libc/arch/aarch64/sys/getcontext.S | 54 +
lib/libc/arch/aarch64/sys/pipe.S | 43 +
lib/libc/arch/aarch64/sys/ptrace.S | 53 +
lib/libc/arch/aarch64/sys/sbrk.S | 70 +
lib/libc/arch/aarch64/sys/shmat.S | 5 +
lib/libc/arch/aarch64/sys/syscall.S | 6 +
lib/libc/compat/arch/aarch64/Makefile.inc | 1 +
lib/libkvm/kvm_aarch64.c | 208 +
lib/libm/arch/aarch64/e_sqrt.S | 39 +
lib/libm/arch/aarch64/e_sqrtf.S | 39 +
lib/libm/arch/aarch64/fenv.c | 263 +
lib/libm/arch/aarch64/s_fabsf.S | 39 +
lib/libm/arch/aarch64/s_fma.S | 41 +
lib/libm/arch/aarch64/s_fmaf.S | 41 +
lib/libm/arch/aarch64/s_fmax.S | 41 +
lib/libm/arch/aarch64/s_fmaxf.S | 41 +
lib/libm/arch/aarch64/s_fmin.S | 41 +
lib/libm/arch/aarch64/s_fminf.S | 41 +
lib/libpthread/arch/aarch64/pthread_md.h | 57 +
libexec/ld.elf_so/arch/aarch64/Makefile.inc | 12 +
libexec/ld.elf_so/arch/aarch64/mdreloc.c | 263 +
libexec/ld.elf_so/arch/aarch64/rtld_start.S | 108 +
sys/arch/aarch64/Makefile | 5 +
sys/arch/aarch64/aarch64/aarch64_machdep.c | 97 +
sys/arch/aarch64/aarch64/bus_dma.c | 36 +
sys/arch/aarch64/aarch64/bus_space.c | 36 +
sys/arch/aarch64/aarch64/cctr_machdep.c | 36 +
sys/arch/aarch64/aarch64/copyinout.S | 157 +
sys/arch/aarch64/aarch64/core_machdep.c | 91 +
sys/arch/aarch64/aarch64/cpu_in_cksum.S | 259 +
sys/arch/aarch64/aarch64/cpu_machdep.c | 395 +
sys/arch/aarch64/aarch64/db_disasm.c | 36 +
sys/arch/aarch64/aarch64/db_interface.c | 128 +
sys/arch/aarch64/aarch64/db_machdep.c | 88 +
sys/arch/aarch64/aarch64/db_trace.c | 36 +
sys/arch/aarch64/aarch64/exception.S | 36 +
sys/arch/aarch64/aarch64/exec_machdep.c | 80 +
sys/arch/aarch64/aarch64/fpu.c | 69 +
sys/arch/aarch64/aarch64/fusu.S | 135 +
sys/arch/aarch64/aarch64/genassym.cf | 198 +
sys/arch/aarch64/aarch64/idle_machdep.S | 76 +
sys/arch/aarch64/aarch64/locore.S | 217 +
sys/arch/aarch64/aarch64/pmap.c | 206 +
sys/arch/aarch64/aarch64/pmap_page.S | 83 +
sys/arch/aarch64/aarch64/process_machdep.c | 101 +
sys/arch/aarch64/aarch64/procfs_machdep.c | 54 +
sys/arch/aarch64/aarch64/sig_machdep.c | 115 +
sys/arch/aarch64/aarch64/sys_machdep.c | 45 +
sys/arch/aarch64/aarch64/syscall.c | 227 +
sys/arch/aarch64/aarch64/trap.c | 47 +
sys/arch/aarch64/aarch64/vectors.S | 68 +
sys/arch/aarch64/aarch64/vm_machdep.c | 211 +
sys/arch/aarch64/conf/Makefile.aarch64 | 123 +
sys/arch/aarch64/conf/files.aarch64 | 118 +
sys/arch/aarch64/conf/kern.ldscript | 109 +
sys/arch/aarch64/conf/majors.aarch64 | 111 +
sys/arch/aarch64/conf/std.aarch64 | 10 +
sys/arch/aarch64/dev/a64gic_mainbus.c | 92 +
sys/arch/aarch64/dev/a64gtmr.c | 315 +
sys/arch/aarch64/dev/a64gtmr_intr.h | 44 +
sys/arch/aarch64/dev/a64gtmr_var.h | 51 +
sys/arch/aarch64/dev/cpu.c | 36 +
sys/arch/aarch64/dev/cpucore.c | 36 +
sys/arch/aarch64/dev/cpunode.c | 36 +
sys/arch/aarch64/dev/mainbus.c | 36 +
sys/arch/aarch64/include/Makefile | 25 +
sys/arch/aarch64/include/ansi.h | 3 +
sys/arch/aarch64/include/aout_machdep.h | 48 +
sys/arch/aarch64/include/armreg.h | 456 +
sys/arch/aarch64/include/asm.h | 108 +
sys/arch/aarch64/include/bswap.h | 3 +
sys/arch/aarch64/include/bus_defs.h | 378 +
sys/arch/aarch64/include/bus_funcs.h | 567 +
sys/arch/aarch64/include/byte_swap.h | 112 +
sys/arch/aarch64/include/cdefs.h | 3 +
sys/arch/aarch64/include/cpu.h | 122 +
sys/arch/aarch64/include/cpu_counter.h | 69 +
sys/arch/aarch64/include/db_machdep.h | 103 +
sys/arch/aarch64/include/disklabel.h | 76 +
sys/arch/aarch64/include/elf_machdep.h | 252 +
sys/arch/aarch64/include/endian.h | 3 +
sys/arch/aarch64/include/endian_machdep.h | 3 +
sys/arch/aarch64/include/fenv.h | 3 +
sys/arch/aarch64/include/float.h | 3 +
sys/arch/aarch64/include/frame.h | 58 +
sys/arch/aarch64/include/ieee.h | 3 +
sys/arch/aarch64/include/ieeefp.h | 3 +
sys/arch/aarch64/include/int_const.h | 3 +
sys/arch/aarch64/include/int_fmtio.h | 3 +
sys/arch/aarch64/include/int_limits.h | 3 +
sys/arch/aarch64/include/int_mwgwtypes.h | 3 +
sys/arch/aarch64/include/int_types.h | 3 +
sys/arch/aarch64/include/intr.h | 153 +
sys/arch/aarch64/include/kcore.h | 49 +
sys/arch/aarch64/include/limits.h | 3 +
sys/arch/aarch64/include/lock.h | 96 +
sys/arch/aarch64/include/locore.h | 159 +
sys/arch/aarch64/include/math.h | 3 +
sys/arch/aarch64/include/mcontext.h | 146 +
sys/arch/aarch64/include/mutex.h | 3 +
sys/arch/aarch64/include/param.h | 144 +
sys/arch/aarch64/include/pcb.h | 54 +
sys/arch/aarch64/include/pmap.h | 77 +
sys/arch/aarch64/include/pmc.h | 11 +
sys/arch/aarch64/include/proc.h | 55 +
sys/arch/aarch64/include/profile.h | 93 +
sys/arch/aarch64/include/psl.h | 8 +
sys/arch/aarch64/include/pte.h | 124 +
sys/arch/aarch64/include/ptrace.h | 58 +
sys/arch/aarch64/include/reg.h | 62 +
sys/arch/aarch64/include/rwlock.h | 3 +
sys/arch/aarch64/include/setjmp.h | 72 +
sys/arch/aarch64/include/signal.h | 47 +
sys/arch/aarch64/include/sysarch.h | 7 +
sys/arch/aarch64/include/trap.h | 8 +
sys/arch/aarch64/include/types.h | 108 +
sys/arch/aarch64/include/vmparam.h | 141 +
sys/arch/aarch64/include/wchar_limits.h | 3 +
sys/arch/evbarm64/Makefile | 5 +
sys/arch/evbarm64/a64emul/a64emul_machdep.c | 36 +
sys/arch/evbarm64/a64emul/obio_mainbus.c | 36 +
sys/arch/evbarm64/a64emul/obio_var.h | 48 +
sys/arch/evbarm64/a64emul/plcom_obio.c | 101 +
sys/arch/evbarm64/a64emul/sm_mainbus.c | 36 +
sys/arch/evbarm64/conf/A64EMUL | 271 +
sys/arch/evbarm64/conf/Makefile.evbarm64.inc | 23 +
sys/arch/evbarm64/conf/files.a64emul | 14 +
sys/arch/evbarm64/conf/files.evbarm64 | 8 +
sys/arch/evbarm64/conf/std.a64emul | 14 +
sys/arch/evbarm64/conf/std.evbarm64 | 4 +
sys/arch/evbarm64/include/Makefile | 8 +
sys/arch/evbarm64/include/ansi.h | 3 +
sys/arch/evbarm64/include/asm.h | 3 +
sys/arch/evbarm64/include/bswap.h | 3 +
sys/arch/evbarm64/include/bus_defs.h | 3 +
sys/arch/evbarm64/include/bus_funcs.h | 3 +
sys/arch/evbarm64/include/cdefs.h | 3 +
sys/arch/evbarm64/include/cpu.h | 3 +
sys/arch/evbarm64/include/cpu_counter.h | 3 +
sys/arch/evbarm64/include/db_machdep.h | 3 +
sys/arch/evbarm64/include/disklabel.h | 3 +
sys/arch/evbarm64/include/elf_machdep.h | 3 +
sys/arch/evbarm64/include/endian.h | 3 +
sys/arch/evbarm64/include/endian_machdep.h | 3 +
sys/arch/evbarm64/include/frame.h | 3 +
sys/arch/evbarm64/include/int_const.h | 3 +
sys/arch/evbarm64/include/int_fmtio.h | 3 +
sys/arch/evbarm64/include/int_limits.h | 3 +
sys/arch/evbarm64/include/int_mwgwtypes.h | 3 +
sys/arch/evbarm64/include/int_types.h | 3 +
sys/arch/evbarm64/include/intr.h | 3 +
sys/arch/evbarm64/include/kcore.h | 3 +
sys/arch/evbarm64/include/limits.h | 3 +
sys/arch/evbarm64/include/lock.h | 3 +
sys/arch/evbarm64/include/mcontext.h | 3 +
sys/arch/evbarm64/include/mutex.h | 3 +
sys/arch/evbarm64/include/param.h | 45 +
sys/arch/evbarm64/include/pcb.h | 3 +
sys/arch/evbarm64/include/pmap.h | 7 +
sys/arch/evbarm64/include/pmc.h | 3 +
sys/arch/evbarm64/include/proc.h | 3 +
sys/arch/evbarm64/include/profile.h | 3 +
sys/arch/evbarm64/include/psl.h | 3 +
sys/arch/evbarm64/include/pte.h | 5 +
sys/arch/evbarm64/include/ptrace.h | 3 +
sys/arch/evbarm64/include/reg.h | 3 +
sys/arch/evbarm64/include/rwlock.h | 3 +
sys/arch/evbarm64/include/setjmp.h | 3 +
sys/arch/evbarm64/include/signal.h | 3 +
sys/arch/evbarm64/include/trap.h | 3 +
sys/arch/evbarm64/include/types.h | 10 +
sys/arch/evbarm64/include/vmparam.h | 3 +
sys/arch/evbarm64/include/wchar_limits.h | 3 +
sys/lib/libkern/arch/aarch64/Makefile.inc | 9 +
tests/lib/libc/arch/aarch64/exec_prot_support.c | 41 +
tests/lib/libc/arch/aarch64/return_one.S | 10 +
usr.bin/xlint/arch/aarch64/targparam.h | 52 +
307 files changed, 27693 insertions(+), 0 deletions(-)
diffs (truncated from 28921 to 300 lines):
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/Makefile.inc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/Makefile.inc Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,25 @@
+# $NetBSD: Makefile.inc,v 1.1 2014/08/10 05:47:35 matt Exp $
+
+.if defined(LIB) && (${LIB} == "kern" || ${LIB} == "c" || ${LIB} == "pthread" \
+ || ${LIB} == "rump")
+
+.for op in add and cas nand or sub swap xor
+.for sz in 8 16 32 64
+SRCS.atomic+= atomic_${op}_${sz}.S
+.endfor
+.endfor
+SRCS.atomic+= atomic_dec_32.S atomic_dec_64.S
+SRCS.atomic+= atomic_inc_32.S atomic_inc_64.S
+SRCS.atomic+= membar_ops.S
+#.for op in add and nand or sub xor
+#SRCS.atomic+= sync_fetch_and_${op}_8.S
+#.endfor
+#.for sz in 1 2 4 8
+#SRCS.atomic+= sync_bool_compare_and_swap_${sz}.S
+#.endfor
+
+.endif
+
+SRCS.atomic+= atomic_init_cas.c
+
+SRCS+= ${SRCS.atomic}
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/atomic_add_16.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/atomic_add_16.S Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,46 @@
+/* $NetBSD: atomic_add_16.S,v 1.1 2014/08/10 05:47:35 matt Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ATOMIC_OP16(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_16,_atomic_add_16)
+ATOMIC_OP_ALIAS(atomic_add_short,_atomic_add_16)
+STRONG_ALIAS(__sync_fetch_and_add_2,_atomic_add_16)
+STRONG_ALIAS(_atomic_add_short,_atomic_add_16)
+
+ATOMIC_OP16_NV(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_16_nv,_atomic_add_16_nv)
+ATOMIC_OP_ALIAS(atomic_add_short_nv,_atomic_add_16_nv)
+STRONG_ALIAS(__sync_add_and_fetch_2,_atomic_add_16_nv)
+STRONG_ALIAS(_atomic_add_short_nv,_atomic_add_16_nv)
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/atomic_add_32.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/atomic_add_32.S Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,46 @@
+/* $NetBSD: atomic_add_32.S,v 1.1 2014/08/10 05:47:35 matt Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ATOMIC_OP32(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_32,_atomic_add_32)
+ATOMIC_OP_ALIAS(atomic_add_int,_atomic_add_32)
+STRONG_ALIAS(__sync_fetch_and_add_4,_atomic_add_32)
+STRONG_ALIAS(_atomic_add_int,_atomic_add_32)
+
+ATOMIC_OP32_NV(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_32_nv,_atomic_add_32_nv)
+ATOMIC_OP_ALIAS(atomic_add_int_nv,_atomic_add_32_nv)
+STRONG_ALIAS(__sync_add_and_fetch_4,_atomic_add_32_nv)
+STRONG_ALIAS(_atomic_add_int_nv,_atomic_add_32_nv)
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/atomic_add_64.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/atomic_add_64.S Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,50 @@
+/* $NetBSD: atomic_add_64.S,v 1.1 2014/08/10 05:47:35 matt Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ATOMIC_OP64(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_64_nv,_atomic_add_64_nv)
+ATOMIC_OP_ALIAS(atomic_add_ptr_nv,_atomic_add_64_nv)
+ATOMIC_OP_ALIAS(atomic_add_long_nv,_atomic_add_64_nv)
+STRONG_ALIAS(_atomic_add_ptr_nv,_atomic_add_64_nv)
+STRONG_ALIAS(_atomic_add_long_nv,_atomic_add_64_nv)
+STRONG_ALIAS(__sync_add_and_fetch_8,_atomic_add_64_nv)
+
+ATOMIC_OP64_NV(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_64,_atomic_add_64)
+ATOMIC_OP_ALIAS(atomic_add_ptr,_atomic_add_64)
+ATOMIC_OP_ALIAS(atomic_add_long,_atomic_add_64)
+STRONG_ALIAS(_atomic_add_ptr,_atomic_add_64)
+STRONG_ALIAS(_atomic_add_long,_atomic_add_64)
+STRONG_ALIAS(__sync_fetch_and_add_8,_atomic_add_64)
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/atomic_add_8.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/atomic_add_8.S Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,46 @@
+/* $NetBSD: atomic_add_8.S,v 1.1 2014/08/10 05:47:35 matt Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ATOMIC_OP8(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_8,_atomic_add_8)
+ATOMIC_OP_ALIAS(atomic_add_char,_atomic_add_8)
+STRONG_ALIAS(__sync_fetch_and_add_1,_atomic_add_8)
+STRONG_ALIAS(_atomic_add_char,_atomic_add_8)
+
+ATOMIC_OP8_NV(add, add)
+
+ATOMIC_OP_ALIAS(atomic_add_8_nv,_atomic_add_8_nv)
+ATOMIC_OP_ALIAS(atomic_add_char_nv,_atomic_add_8_nv)
+STRONG_ALIAS(__sync_add_and_fetch_1,_atomic_add_8_nv)
+STRONG_ALIAS(_atomic_add_char_nv,_atomic_add_8_nv)
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/atomic_and_16.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/atomic_and_16.S Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,46 @@
+/* $NetBSD: atomic_and_16.S,v 1.1 2014/08/10 05:47:35 matt Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ATOMIC_OP16(and, and)
+
+ATOMIC_OP_ALIAS(atomic_and_16,_atomic_and_16)
+ATOMIC_OP_ALIAS(atomic_and_ushort,_atomic_and_16)
+STRONG_ALIAS(__sync_fetch_and_and_2,_atomic_and_16)
+STRONG_ALIAS(_atomic_and_ushort,_atomic_and_16)
+
+ATOMIC_OP16_NV(and, and)
+
+ATOMIC_OP_ALIAS(atomic_and_16_nv,_atomic_and_16_nv)
+ATOMIC_OP_ALIAS(atomic_and_ushort_nv,_atomic_and_16_nv)
+STRONG_ALIAS(__sync_and_and_fetch_2,_atomic_and_16_nv)
+STRONG_ALIAS(_atomic_and_ushort_nv,_atomic_and_16_nv)
diff -r aae6812980bb -r da40b96f6142 common/lib/libc/arch/aarch64/atomic/atomic_and_32.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/lib/libc/arch/aarch64/atomic/atomic_and_32.S Sun Aug 10 05:47:35 2014 +0000
@@ -0,0 +1,46 @@
+/* $NetBSD: atomic_and_32.S,v 1.1 2014/08/10 05:47:35 matt Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
Home |
Main Index |
Thread Index |
Old Index