[llvm-commits] [compiler-rt] r99632 - /compiler-rt/trunk/make/platform/clang_darwin.mk

Daniel Dunbar daniel at zuster.org
Fri Mar 26 11:52:46 PDT 2010


Author: ddunbar
Date: Fri Mar 26 13:52:45 2010
New Revision: 99632

URL: http://llvm.org/viewvc/llvm-project?rev=99632&view=rev
Log:
Clang/Darwin: Add definition for files to put in cc_kext.a.

Modified:
    compiler-rt/trunk/make/platform/clang_darwin.mk

Modified: compiler-rt/trunk/make/platform/clang_darwin.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_darwin.mk?rev=99632&r1=99631&r2=99632&view=diff
==============================================================================
--- compiler-rt/trunk/make/platform/clang_darwin.mk (original)
+++ compiler-rt/trunk/make/platform/clang_darwin.mk Fri Mar 26 13:52:45 2010
@@ -20,6 +20,12 @@
 Configs += armv6
 UniversalArchs.armv6 := armv6
 
+# Configuration for use with kernel/kexts.
+Configs += cc_kext
+UniversalArchs.cc_kext := armv6 armv7 i386 x86_64
+
+###
+
 CC := gcc
 
 # Forcibly strip off any -arch, as that totally breaks our universal support.
@@ -32,4 +38,204 @@
 FUNCTIONS.armv6 := switch16 switch32 switch8 switchu8 \
                    save_vfp_d8_d15_regs restore_vfp_d8_d15_regs
 
+CCKEXT_COMMON_FUNCTIONS := \
+	absvdi2 \
+	absvsi2 \
+	addvdi3 \
+	addvsi3 \
+	ashldi3 \
+	ashrdi3 \
+	bswapdi2 \
+	bswapsi2 \
+	clear_cache \
+	clzdi2 \
+	clzsi2 \
+	cmpdi2 \
+	ctzdi2 \
+	ctzsi2 \
+	divdc3 \
+	divdi3 \
+	divsc3 \
+	do_global_dtors \
+	enable_execute_stack \
+	eprintf \
+	ffsdi2 \
+	fixdfdi \
+	fixsfdi \
+	fixunsdfdi \
+	fixunsdfsi \
+	fixunssfdi \
+	fixunssfsi \
+	floatdidf \
+	floatdisf \
+	floatundidf \
+	floatundisf \
+	gcc_bcmp \
+	lshrdi3 \
+	moddi3 \
+	muldc3 \
+	muldi3 \
+	mulsc3 \
+	mulvdi3 \
+	mulvsi3 \
+	negdi2 \
+	negvdi2 \
+	negvsi2 \
+	paritydi2 \
+	paritysi2 \
+	popcountdi2 \
+	popcountsi2 \
+	powidf2 \
+	powisf2 \
+	subvdi3 \
+	subvsi3 \
+	ucmpdi2 \
+	udiv_w_sdiv \
+	udivdi3 \
+	udivmoddi4 \
+	umoddi3
+
+CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTONS) \
+	adddf3 \
+	addsf3 \
+	aeabi_cdcmpeq \
+	aeabi_cdrcmple \
+	aeabi_cfcmpeq \
+	aeabi_cfrcmple \
+	aeabi_dcmpeq \
+	aeabi_dcmpge \
+	aeabi_dcmpgt \
+	aeabi_dcmple \
+	aeabi_dcmplt \
+	aeabi_drsub \
+	aeabi_fcmpeq \
+	aeabi_fcmpge \
+	aeabi_fcmpgt \
+	aeabi_fcmple \
+	aeabi_fcmplt \
+	aeabi_frsub \
+	aeabi_idivmod \
+	aeabi_uidivmod \
+	cmpdf2 \
+	cmpsf2 \
+	div0 \
+	divdf3 \
+	divsf3 \
+	divsi3 \
+	extendsfdf2 \
+	ffssi2 \
+	fixdfsi \
+	fixsfsi \
+	floatsidf \
+	floatsisf \
+	floatunsidf \
+	floatunsisf \
+	gtdf2 \
+	gtsf2 \
+	ltdf2 \
+	ltsf2 \
+	modsi3 \
+	muldf3 \
+	mulsf3 \
+	negdf2 \
+	negsf2 \
+	subdf3 \
+	subsf3 \
+	switch16 \
+	switch32 \
+	switch8 \
+	switchu8 \
+	truncdfsf2 \
+	udivsi3 \
+	umodsi3 \
+	unorddf2 \
+	unordsf2
+
+FUNCTIONS.cc_kext.armv6 := $(CCKEXT_ARM_FUNCTIONS)
+FUNCTIONS.cc_kext.armv7 := $(CCKEXT_ARM_FUNCTIONS)
+
+CCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
+	divxc3 \
+	fixunsxfdi \
+	fixunsxfsi \
+	fixxfdi \
+	floatdixf \
+	floatundixf \
+	mulxc3 \
+	powixf2
+
+FUNCTIONS.cc_kext.i386 := $(CCKEXT_X86_FUNCTIONS) \
+	ffssi2 \
+	i686.get_pc_thunk.eax \
+	i686.get_pc_thunk.ebp \
+	i686.get_pc_thunk.ebx \
+	i686.get_pc_thunk.ecx \
+	i686.get_pc_thunk.edi \
+	i686.get_pc_thunk.edx \
+	i686.get_pc_thunk.esi
+
+FUNCTIONS.cc_kext.x86_64 := $(CCKEXT_X86_FUNCTIONS) \
+	absvti2 \
+	addvti3 \
+	ashlti3 \
+	ashrti3 \
+	clzti2 \
+	cmpti2 \
+	ctzti2 \
+	divti3 \
+	ffsti2 \
+	fixdfti \
+	fixsfti \
+	fixunsdfti \
+	fixunssfti \
+	fixunsxfti \
+	fixxfti \
+	floattidf \
+	floattisf \
+	floattixf \
+	floatuntidf \
+	floatuntisf \
+	floatuntixf \
+	lshrti3 \
+	modti3 \
+	multi3 \
+	mulvti3 \
+	negti2 \
+	negvti2 \
+	parityti2 \
+	popcountti2 \
+	subvti3 \
+	ucmpti2 \
+	udivmodti4 \
+	udivti3 \
+	umodti3
+
+# FIXME: Currently, compiler-rt is missing implementations for a number of the
+# functions that need to go into libcc_kext.a. Filter them out for now.
+CCKEXT_MISSING_FUNCTIONS := \
+	adddf3 addsf3 cmpdf2 cmpsf2 div0 divdf3 divsf3 \
+	extendsfdf2 ffssi2 fixdfsi fixsfsi floatsidf floatsisf \
+	floatunsidf floatunsisf gtdf2 gtsf2 ltdf2 ltsf2 \
+	muldf3 mulsf3 negdf2 negsf2 subdf3 subsf3 \
+	truncdfsf2 udiv_w_sdiv unorddf2 unordsf2 bswapdi2 \
+	bswapsi2 \
+	gcc_bcmp \
+	do_global_dtors \
+	i686.get_pc_thunk.eax i686.get_pc_thunk.ebp i686.get_pc_thunk.ebx \
+	i686.get_pc_thunk.ecx i686.get_pc_thunk.edi i686.get_pc_thunk.edx \
+	i686.get_pc_thunk.esi \
+	aeabi_cdcmpeq aeabi_cdrcmple aeabi_cfcmpeq aeabi_cfrcmple aeabi_dcmpeq \
+	aeabi_dcmpge aeabi_dcmpgt aeabi_dcmple aeabi_dcmplt aeabi_drsub aeabi_fcmpeq \
+	aeabi_fcmpge aeabi_fcmpgt aeabi_fcmple aeabi_fcmplt aeabi_frsub aeabi_idivmod \
+	aeabi_uidivmod
+
+FUNCTIONS.cc_kext.armv6 := \
+	$(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv6))
+FUNCTIONS.cc_kext.armv7 := \
+	$(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv7))
+FUNCTIONS.cc_kext.i386 := \
+	$(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.i386))
+FUNCTIONS.cc_kext.x86_64 := \
+	$(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.x86_64))
+
 VISIBILITY_HIDDEN := 1





More information about the llvm-commits mailing list