# Compile the extra library functions.

LIB2FUNCS_EXTRA = \
	$(srcdir)/config/picochip/libgccExtras/ashrsi3.asm 		\
	$(srcdir)/config/picochip/libgccExtras/ashlsi3.asm		\
	$(srcdir)/config/picochip/libgccExtras/divmodhi4.asm 		\
	$(srcdir)/config/picochip/libgccExtras/udivmodhi4.asm 		\
	$(srcdir)/config/picochip/libgccExtras/divmodsi4.asm 		\
	$(srcdir)/config/picochip/libgccExtras/udivmodsi4.asm 		\
	$(srcdir)/config/picochip/libgccExtras/divmod15.asm 		\
	$(srcdir)/config/picochip/libgccExtras/ucmpsi2.asm 		\
	$(srcdir)/config/picochip/libgccExtras/cmpsi2.asm 		\
	$(srcdir)/config/picochip/libgccExtras/clzsi2.asm			\
	$(srcdir)/config/picochip/libgccExtras/adddi3.asm			\
	$(srcdir)/config/picochip/libgccExtras/subdi3.asm			\
	$(srcdir)/config/picochip/libgccExtras/lshrsi3.asm		\
	$(srcdir)/config/picochip/libgccExtras/parityhi2.asm		\
	$(srcdir)/config/picochip/libgccExtras/popcounthi2.asm

# Prevent some of the more complicated libgcc functions from being
# compiled. This is because they are generally too big to fit into an
# AE anyway, so there is no point in having them. Also, some don't
# compile properly so we'll ignore them for the moment.

LIB1ASMFUNCS = _mulsc3 _divsc3
LIB1ASMSRC = picochip/libgccExtras/fake_libgcc.asm

# Turn off the building of exception handling libraries.
LIB2ADDEH =
LIB2ADDEHDEP =

# Turn off ranlib on target libraries.
RANLIB_FOR_TARGET = cat

# Special libgcc setup. Make single/double floating point the same,
# and use our own include files.
TARGET_LIBGCC2_CFLAGS = -DDF=SF -I../../includes/

# Switch off all debugging for the embedded libraries.
# (embedded processors need small libraries by default).
# NOTE: If the debug level is increased, turn off instruction scheduling.
LIBGCC2_DEBUG_CFLAGS = -g0

# Build all combinations of library for different multiply units, and
# presence/absence of byte access.
MULTILIB_OPTIONS = mmul-type=none/mmul-type=mac/mmul-type=mul mno-byte-access/mbyte-access

# Using a mul unit (currently) implies that byte access is available.
MULTILIB_EXCEPTIONS = mmul-type=mul/mno-byte-access

# We want fine grained libraries, so use the new code
# to build the floating point emulation libraries.
FPBIT = fp-bit.c

# Software floating point support. Floating point is not properly
# supported, but is existence can be useful for some types of testing.
fp-bit.c:	$(srcdir)/config/fp-bit.c
	echo '#define FLOAT' > fp-bit.c
	echo '#define FLOAT_ONLY' >> fp-bit.c
	echo '#define SMALL_MACHINE' >> fp-bit.c
	cat $(srcdir)/config/fp-bit.c >> fp-bit.c

