1# $NetBSD: Makefile.inc,v 1.14 2014/11/20 07:07:13 matt Exp $ 2 3# 4# Note: The atomic operations here in these assembly files are atomic 5# only with respect to regular memory on uniprocessor systems. Since 6# we don't support any MP m68k systems, this is just fine. If we ever 7# do, then these routines will probably need to be replaced with CAS- 8# based routines (CAS generates an atomic bus cycle, whereas these 9# others are merely single-instruction). 10# 11 12.if defined(LIB) && (${LIB} == "kern" || ${LIB} == "c" || ${LIB} == "pthread" \ 13 || ${LIB} == "rump") 14.if ${MACHINE_ARCH} == "m68k" 15 16SRCS+= atomic_add.S atomic_and.S atomic_cas.S atomic_dec.S \ 17 atomic_inc.S atomic_or.S atomic_swap.S membar_ops_nop.c \ 18 atomic_sub.S atomic_xor.S atomic_nand.S 19 20.else 21 22SRCS+= atomic_add_32_cas.c atomic_add_32_nv_cas.c atomic_and_32_cas.c \ 23 atomic_and_32_nv_cas.c atomic_dec_32_cas.c atomic_dec_32_nv_cas.c \ 24 atomic_inc_32_cas.c atomic_inc_32_nv_cas.c atomic_or_32_cas.c \ 25 atomic_or_32_nv_cas.c atomic_swap_32_cas.c membar_ops_nop.c 26 27.if ${LIB} == "c" 28SRCS+= atomic_add_16_cas.c atomic_add_8_cas.c \ 29 atomic_sub_32_cas.c atomic_sub_16_cas.c atomic_sub_8_cas.c \ 30 atomic_nand_32_cas.c atomic_nand_16_cas.c atomic_nand_8_cas.c \ 31 atomic_xor_32_cas.c atomic_xor_16_cas.c atomic_xor_8_cas.c \ 32 atomic_and_32_cas.c atomic_and_16_cas.c atomic_and_8_cas.c \ 33 atomic_or_32_cas.c atomic_or_16_cas.c atomic_or_8_cas.c \ 34 atomic_cas_32_cas.c atomic_cas_16_cas.c atomic_cas_8_cas.c \ 35 atomic_swap_32_cas.c atomic_swap_16_cas.c atomic_swap_8_cas.c 36 37SRCS+= atomic_c11_compare_exchange_cas_8.c \ 38 atomic_c11_compare_exchange_cas_16.c \ 39 atomic_c11_compare_exchange_cas_32.c 40.endif 41 42.endif 43.endif 44 45.if defined(LIB) && (${LIB} == "c" || ${LIB} == "pthread") 46.if ${MACHINE_ARCH} == "m68k" 47 48SRCS+= atomic_init_cas.c 49 50.else 51 52SRCS+= atomic_init_testset.c 53SRCS+= atomic_cas_68000.S 54CPPFLAGS+= -D__HAVE_ASM_ATOMIC_CAS_UP -D__HAVE_ASM_ATOMIC_CAS_16_UP \ 55 -D__HAVE_ASM_ATOMIC_CAS_8_UP 56 57.endif 58.endif 59