freebsd-dev/sys/conf/files.mips
Ed Schouten 2e5d5dc936 Add proper __sync_*() intrinsics for MIPS.
To make <stdatomic.h> work on MIPS (and ARM) using GCC, we need to
provide implementations of the __sync_*() functions. I already added
these functions for 4 and 8 byte types to libcompiler-rt some time ago,
based on top of <machine/atomic.h>.

Unfortunately, <machine/atomic.h> only provides a subset of the features
needed to implement <stdatomic.h>. This means that in some cases we had
to do compare-and-exchange calls in loops, where a simple ll/sc would
suffice.

Also implement these functions for 1 and 2 byte types. MIPS only
provides ll/sc instructions for 4 and 8 byte types, but this is of
course no limitation. We can simply load 4 bytes and use some bitmask
tricks to modify only the bytes affected.

Discussed on:	mips, arch
Tested with:	QEMU
2013-06-08 13:19:11 +00:00

88 lines
2.6 KiB
Plaintext

# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
# $FreeBSD$
#
# Arch dependent files
mips/mips/autoconf.c standard
mips/mips/bus_space_generic.c standard
mips/mips/bus_space_fdt.c optional fdt
mips/mips/busdma_machdep.c standard
mips/mips/cache.c standard
mips/mips/cache_mipsNN.c standard
mips/mips/cpu.c standard
mips/mips/db_disasm.c optional ddb
mips/mips/db_interface.c optional ddb
mips/mips/db_trace.c optional ddb
mips/mips/dump_machdep.c standard
mips/mips/elf_machdep.c standard
mips/mips/exception.S standard
mips/mips/fp.S standard
mips/mips/freebsd32_machdep.c optional compat_freebsd32
mips/mips/gdb_machdep.c standard
mips/mips/in_cksum.c optional inet
mips/mips/libkern_machdep.c standard
mips/mips/locore.S standard no-obj
mips/mips/machdep.c standard
mips/mips/mem.c optional mem
mips/mips/minidump_machdep.c standard
mips/mips/mp_machdep.c optional smp
mips/mips/mpboot.S optional smp
mips/mips/nexus.c standard
mips/mips/pm_machdep.c standard
mips/mips/pmap.c standard
mips/mips/ptrace_machdep.c standard
mips/mips/sc_machdep.c standard
mips/mips/stack_machdep.c optional ddb | stack
mips/mips/stdatomic.c standard \
compile-with "${NORMAL_C:N-Wmissing-prototypes}"
mips/mips/support.S standard
mips/mips/swtch.S standard
mips/mips/sys_machdep.c standard
mips/mips/tlb.c standard
mips/mips/trap.c standard
mips/mips/uio_machdep.c standard
mips/mips/uma_machdep.c standard
mips/mips/vm_machdep.c standard
# misc opt-in bits
kern/kern_clocksource.c standard
kern/link_elf_obj.c standard
kern/subr_dummy_vdso_tc.c standard
# gcc/clang runtime
libkern/ffsl.c standard
libkern/fls.c standard
libkern/flsl.c standard
libkern/memmove.c standard
libkern/ucmpdi2.c optional mips | mipsel
# cfe support
dev/cfe/cfe_api.c optional cfe
dev/cfe/cfe_console.c optional cfe_console
dev/cfe/cfe_env.c optional cfe_env
# syscons support
dev/fb/fb.c optional sc
dev/kbd/kbd.c optional sc
dev/syscons/scgfbrndr.c optional sc
dev/syscons/scterm-teken.c optional sc
dev/syscons/scvtb.c optional sc
mips/mips/sc_machdep.c optional sc
# FDT support
dev/fdt/fdt_mips.c optional fdt
dev/uart/uart_cpu_fdt.c optional uart fdt
# crypto support -- use generic
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec
# AP common nvram interface MIPS specific, but maybe should be more generic
dev/nvram2env/nvram2env.c optional nvram2env
# hwpmc support
dev/hwpmc/hwpmc_mips.c optional hwpmc
dev/hwpmc/hwpmc_mips24k.c optional hwpmc_mips24k