# APPLE LOCAL file ARM libgcc_s exports
# For now, this file should include all symbols available in libgcc_s*.dylib,
#   since a new libgcc_s should be available on the platform with each compiler
#   release.  Once a platform is released, these files can be stabilized to
#   match the release.

# The functions that are commented out below (addsf3, subsf3, floatdisf,
# floatsisf) are actually in the 10.4-based libgcc, but are in the same
# object file as functions which are new in 10.5 (floatundisf, floatunsisf).
# So, pulling in floatundisf from the dylib causes linktime duplicate
# symbol errors because addsf3 and others get pulled in from both the
# libgcc dylib and archive.

__Unwind_Backtrace
__Unwind_DeleteException
__Unwind_FindEnclosingFunction
__Unwind_Find_FDE
__Unwind_GetCFA
__Unwind_GetDataRelBase
__Unwind_GetGR
__Unwind_GetIP
__Unwind_GetLanguageSpecificData
__Unwind_GetRegionStart
__Unwind_GetTextRelBase
__Unwind_SetGR
__Unwind_SetIP
__Unwind_SjLj_ForcedUnwind
__Unwind_SjLj_RaiseException
__Unwind_SjLj_Register
__Unwind_SjLj_Resume
__Unwind_SjLj_Resume_or_Rethrow
__Unwind_SjLj_Unregister
___absvdi2
___absvsi2
___adddf3
# ___addsf3
___addvdi3
___addvsi3
___ashldi3
___ashrdi3
___clear_cache
___clzdi2
___clzsi2
___cmpdi2
___ctzdi2
___ctzsi2
___deregister_frame
___deregister_frame_info
___deregister_frame_info_bases
___divdc3
___divdf3
___divdi3
___divsc3
___divsf3
___divsi3
___enable_execute_stack
___eqdf2
___eqsf2
___extendsfdf2
___ffsdi2
___fixdfdi
___fixdfsi
___fixsfdi
___fixsfsi
___fixunsdfdi
___fixunsdfsi
___fixunssfdi
___fixunssfsi
___floatdidf
# ___floatdisf
___floatsidf
# ___floatsisf
___gcc_personality_sj0
___gedf2
___gesf2
___gtdf2
___gtsf2
___ledf2
___lesf2
___lshrdi3
___ltdf2
___ltsf2
___moddi3
___modsi3
___muldc3
___muldf3
___muldi3
___mulsc3
___mulsf3
___mulvdi3
___mulvsi3
___nedf2
___negdf2
___negdi2
___negsf2
___negvdi2
___negvsi2
___nesf2
___paritydi2
___paritysi2
___popcountdi2
___popcountsi2
___powidf2
___powisf2
___register_frame
___register_frame_info
___register_frame_info_bases
___register_frame_info_table
___register_frame_info_table_bases
___register_frame_table
___subdf3
# ___subsf3
___subvdi3
___subvsi3
___truncdfsf2
___ucmpdi2
___udivdi3
___udivmoddi4
___udivsi3
___umoddi3
___umodsi3
___unorddf2
___unordsf2
