# APPLE LOCAL file ARM darwin target
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
	_lshrdi3 _ashrdi3 _ashldi3 \
	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
	_fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundidf _floatundisf \
	_muldf3vfp _adddf3vfp _subdf3vfp _divdf3vfp \
	_eqdf2vfp _nedf2vfp _ltdf2vfp _gtdf2vfp _ledf2vfp _gedf2vfp _unorddf2vfp \
	_fixdfsivfp _fixunsdfsivfp _extendsfdf2vfp _truncdfsf2vfp \
	_floatsidfvfp _floatunssidfvfp \
	_mulsf3vfp _addsf3vfp _subsf3vfp _divsf3vfp \
	_eqsf2vfp _nesf2vfp _ltsf2vfp _gtsf2vfp _lesf2vfp _gesf2vfp _unordsf2vfp \
	_fixsfsivfp _fixunssfsivfp _floatsisfvfp _floatunssisfvfp \
	_switchu8 _switch8 _switch16 _switch32
# APPLE LOCAL 6465387 exception handling interworking VFP save
LIB1ASMFUNCS += _save_vfp_d8_d15_regs _restore_vfp_d8_d15__regs

# APPLE LOCAL begin 5316398 improved float/double -> int64 functions
LIB2FUNCS_EXCLUDE = _fixdfdi _fixunsdfdi _fixsfdi _fixunssfdi
LIB2FUNCS_EXTRA = $(srcdir)/config/arm/_fixdfdi.c \
	$(srcdir)/config/arm/_fixunsdfdi.c \
	$(srcdir)/config/arm/_fixsfdi.c \
	$(srcdir)/config/arm/_fixunssfdi.c 
# APPLE LOCAL end 5316398 improved float/double -> int64 functions

# APPLE LOCAL begin 6611402 configurable multilib architectures
ifndef ARM_MULTILIB_ARCHS
ARM_MULTILIB_ARCHS:=armv5 armv6 armv7
endif

MULTILIB_OPTIONS:=$(shell echo $(strip $(ARM_MULTILIB_ARCHS)) | \
  sed -e s/armv5/march=armv5tej/ \
      -e s/armv6/march=armv6k/ \
      -e s/armv7/march=armv7a/ \
      -e 's| |/|g')
MULTILIB_DIRNAMES:=$(shell echo $(ARM_MULTILIB_ARCHS) | sed -e s/arm//g)
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES =

ifneq (,$(findstring armv5,$(ARM_MULTILIB_ARCHS)))
MULTILIB_MATCHES += \
  march?armv5tej=march?armv5te \
  march?armv5tej=mcpu?arm9e \
  march?armv5tej=mcpu?arm946e-s \
  march?armv5tej=mcpu?arm966e-s \
  march?armv5tej=mcpu?arm968e-s \
  march?armv5tej=mcpu?arm10e \
  march?armv5tej=mcpu?arm1020e \
  march?armv5tej=mcpu?arm1022e \
  march?armv5tej=mcpu?xscale \
  march?armv5tej=mcpu?iwmmxt \
  march?armv5tej=mcpu?arm926ej-s \
  march?armv5tej=mcpu?arm1026ej-s
endif

ifneq (,$(findstring armv6,$(ARM_MULTILIB_ARCHS)))
MULTILIB_MATCHES += \
  march?armv6k=march?armv6zk \
  march?armv6k=mcpu?arm1176jz-s \
  march?armv6k=mcpu?arm1176jzf-s \
  march?armv6k=mcpu?mpcorenovfp \
  march?armv6k=mcpu?mpcore
endif

ifneq (,$(findstring armv7,$(ARM_MULTILIB_ARCHS)))
MULTILIB_MATCHES += \
  march?armv7a=march?armv7-a \
  march?armv7a=mcpu?cortex-a8
endif

# APPLE LOCAL end 6611402 configurable multilib architectures
TARGET_LIBGCC2_CFLAGS = -fno-inline

