blob: 75b1d69a56a500fe0aad203ea710f6e392e149b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# $NetBSD: Makefile.inc,v 1.5 2022/08/06 21:31:33 riastradh 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
#and cas nand or sub swap xor
.for op in swp cas clr set eor add
.for sz in 1 2 4 8
.for ar in _relax _acq _rel _acq_rel _sync
__aarch64_${op}${sz}${ar}.S: __aarch64_lse.S
${_MKTARGET_CREATE}
printf '#define OP ${op}\n#define OP_${op}\n#define SZ ${sz}\n#define AR ${ar}\n#define AR${ar}\n#include "__aarch64_lse.S"\n' > ${.TARGET}
SRCS.gen+= __aarch64_${op}${sz}${ar}.S
.endfor
.endfor
.endfor
.for op in casp
.for ar in _relax _acq _rel _acq_rel _sync
__aarch64_${op}${ar}.S: __aarch64_lse.S
${_MKTARGET_CREATE}
printf '#define OP ${op}\n#define OP_${op}\n#define AR ${ar}\n#define AR${ar}\n#include "__aarch64_lse.S"\n' > ${.TARGET}
SRCS.gen+= __aarch64_${op}${ar}.S
.endfor
.endfor
#.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} ${SRCS.gen}
CLEANFILES+= ${SRCS.gen}
|