Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/external/bsd/compiler_rt/dist Import compiler-rt r202303...
details: https://anonhg.NetBSD.org/src/rev/c29226cb8569
branches: trunk
changeset: 327079:c29226cb8569
user: joerg <joerg%NetBSD.org@localhost>
date: Wed Feb 26 22:31:29 2014 +0000
description:
Import compiler-rt r202303. Extend 128bit support to all LP64 platforms.
diffstat:
sys/external/bsd/compiler_rt/dist/CREDITS.TXT | 8 +
sys/external/bsd/compiler_rt/dist/LICENSE.TXT | 2 +-
sys/external/bsd/compiler_rt/dist/lib/builtins/absvdi2.c | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/absvsi2.c | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/absvti2.c | 34 +
sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c | 152 +
sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c | 151 +
sys/external/bsd/compiler_rt/dist/lib/builtins/addvdi3.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/addvsi3.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/addvti3.c | 40 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/adddf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/addsf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_dcmp.S | 40 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_fcmp.S | 40 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_idivmod.S | 28 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_ldivmod.S | 31 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_memcmp.S | 20 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_memcpy.S | 20 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_memmove.S | 20 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_memset.S | 34 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_uidivmod.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_uldivmod.S | 31 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/bswapdi2.S | 37 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/bswapsi2.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/clzdi2.S | 89 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/clzsi2.S | 69 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/comparesf2.S | 148 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divdf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S | 61 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S | 52 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/eqdf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/eqsf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/extendsfdf2vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/fixdfsivfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/fixsfsivfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/fixunsdfsivfp.S | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/fixunssfsivfp.S | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/floatsidfvfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/floatsisfvfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/floatunssidfvfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/floatunssisfvfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/gedf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/gesf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/gtdf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/gtsf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/ledf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/lesf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/ltdf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/ltsf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S | 51 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/muldf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/mulsf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/nedf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/negdf2vfp.S | 23 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/negsf2vfp.S | 23 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/nesf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/restore_vfp_d8_d15_regs.S | 35 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/save_vfp_d8_d15_regs.S | 35 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/softfloat-alias.list | 21 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/subdf3vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/subsf3vfp.S | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/switch16.S | 46 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/switch32.S | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/switch8.S | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/switchu8.S | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/sync_synchronize.S | 35 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/truncdfsf2vfp.S | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/udivmodsi4.S | 161 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/udivsi3.S | 148 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/umodsi3.S | 141 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/unorddf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/unordsf2vfp.S | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c | 43 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ashlti3.c | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ashrti3.c | 46 +
sys/external/bsd/compiler_rt/dist/lib/builtins/assembly.h | 136 +
sys/external/bsd/compiler_rt/dist/lib/builtins/atomic.c | 337 +
sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c | 71 +
sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/clzsi2.c | 53 +
sys/external/bsd/compiler_rt/dist/lib/builtins/clzti2.c | 33 +
sys/external/bsd/compiler_rt/dist/lib/builtins/cmpdi2.c | 51 +
sys/external/bsd/compiler_rt/dist/lib/builtins/cmpti2.c | 42 +
sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c | 134 +
sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c | 133 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ctzsi2.c | 57 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ctzti2.c | 33 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divdc3.c | 60 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c | 184 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divdi3.c | 31 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divmoddi4.c | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divmodsi4.c | 30 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divsc3.c | 60 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c | 168 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c | 39 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divti3.c | 35 +
sys/external/bsd/compiler_rt/dist/lib/builtins/divxc3.c | 63 +
sys/external/bsd/compiler_rt/dist/lib/builtins/enable_execute_stack.c | 59 +
sys/external/bsd/compiler_rt/dist/lib/builtins/eprintf.c | 34 +
sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c | 137 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ffsdi2.c | 33 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ffsti2.c | 37 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c | 49 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfti.c | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c | 43 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfti.c | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfti.c | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfti.c | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsxfdi.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsxfsi.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsxfti.c | 49 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixxfdi.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fixxfti.c | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c | 107 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c | 80 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatdixf.c | 46 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c | 52 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c | 58 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floattidf.c | 85 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floattisf.c | 84 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floattixf.c | 86 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c | 107 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c | 77 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatundixf.c | 42 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c | 41 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c | 49 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatuntidf.c | 82 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatuntisf.c | 81 +
sys/external/bsd/compiler_rt/dist/lib/builtins/floatuntixf.c | 83 +
sys/external/bsd/compiler_rt/dist/lib/builtins/fp_lib.h | 146 +
sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c | 247 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/ashldi3.S | 58 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/ashrdi3.S | 69 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/divdi3.S | 162 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/floatdidf.S | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/floatdisf.S | 32 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/floatdixf.S | 30 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/floatundidf.S | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/floatundisf.S | 101 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/floatundixf.S | 38 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/lshrdi3.S | 59 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/moddi3.S | 166 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/muldi3.S | 30 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/udivdi3.S | 115 +
sys/external/bsd/compiler_rt/dist/lib/builtins/i386/umoddi3.S | 126 +
sys/external/bsd/compiler_rt/dist/lib/builtins/int_endianness.h | 111 +
sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h | 56 +
sys/external/bsd/compiler_rt/dist/lib/builtins/int_math.h | 67 +
sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h | 143 +
sys/external/bsd/compiler_rt/dist/lib/builtins/int_util.c | 61 +
sys/external/bsd/compiler_rt/dist/lib/builtins/int_util.h | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c | 43 +
sys/external/bsd/compiler_rt/dist/lib/builtins/lshrti3.c | 45 +
sys/external/bsd/compiler_rt/dist/lib/builtins/moddi3.c | 32 +
sys/external/bsd/compiler_rt/dist/lib/builtins/modsi3.c | 25 +
sys/external/bsd/compiler_rt/dist/lib/builtins/modti3.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/muldc3.c | 73 +
sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c | 122 +
sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c | 56 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulodi4.c | 58 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulosi4.c | 58 +
sys/external/bsd/compiler_rt/dist/lib/builtins/muloti4.c | 62 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulsc3.c | 73 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c | 112 +
sys/external/bsd/compiler_rt/dist/lib/builtins/multi3.c | 58 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulvdi3.c | 56 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulvsi3.c | 56 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulvti3.c | 60 +
sys/external/bsd/compiler_rt/dist/lib/builtins/mulxc3.c | 77 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c | 21 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negdi2.c | 26 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c | 22 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negti2.c | 30 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negvdi2.c | 28 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negvsi2.c | 28 +
sys/external/bsd/compiler_rt/dist/lib/builtins/negvti2.c | 32 +
sys/external/bsd/compiler_rt/dist/lib/builtins/paritydi2.c | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/paritysi2.c | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/parityti2.c | 31 +
sys/external/bsd/compiler_rt/dist/lib/builtins/popcountdi2.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/popcountsi2.c | 33 +
sys/external/bsd/compiler_rt/dist/lib/builtins/popcountti2.c | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/powidf2.c | 34 +
sys/external/bsd/compiler_rt/dist/lib/builtins/powisf2.c | 34 +
sys/external/bsd/compiler_rt/dist/lib/builtins/powitf2.c | 38 +
sys/external/bsd/compiler_rt/dist/lib/builtins/powixf2.c | 38 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/DD.h | 46 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/divtc3.c | 96 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/fixtfdi.c | 104 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/fixunstfdi.c | 59 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/floatditf.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/floatunditf.c | 41 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/gcc_qadd.c | 76 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/gcc_qdiv.c | 55 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/gcc_qmul.c | 53 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/gcc_qsub.c | 76 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/multc3.c | 94 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/restFP.S | 43 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ppc/saveFP.S | 40 +
sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c | 28 +
sys/external/bsd/compiler_rt/dist/lib/builtins/subvdi3.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/subvsi3.c | 36 +
sys/external/bsd/compiler_rt/dist/lib/builtins/subvti3.c | 40 +
sys/external/bsd/compiler_rt/dist/lib/builtins/trampoline_setup.c | 47 +
sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c | 168 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ucmpdi2.c | 51 +
sys/external/bsd/compiler_rt/dist/lib/builtins/ucmpti2.c | 42 +
sys/external/bsd/compiler_rt/dist/lib/builtins/udivdi3.c | 25 +
sys/external/bsd/compiler_rt/dist/lib/builtins/udivmoddi4.c | 251 +
sys/external/bsd/compiler_rt/dist/lib/builtins/udivmodsi4.c | 30 +
sys/external/bsd/compiler_rt/dist/lib/builtins/udivmodti4.c | 256 +
sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c | 66 +
sys/external/bsd/compiler_rt/dist/lib/builtins/udivti3.c | 29 +
sys/external/bsd/compiler_rt/dist/lib/builtins/umoddi3.c | 27 +
sys/external/bsd/compiler_rt/dist/lib/builtins/umodsi3.c | 25 +
sys/external/bsd/compiler_rt/dist/lib/builtins/umodti3.c | 31 +
sys/external/bsd/compiler_rt/dist/lib/builtins/x86_64/floatdidf.c | 16 +
sys/external/bsd/compiler_rt/dist/lib/builtins/x86_64/floatdisf.c | 14 +
sys/external/bsd/compiler_rt/dist/lib/builtins/x86_64/floatdixf.c | 16 +
sys/external/bsd/compiler_rt/dist/lib/builtins/x86_64/floatundidf.S | 44 +
sys/external/bsd/compiler_rt/dist/lib/builtins/x86_64/floatundisf.S | 34 +
sys/external/bsd/compiler_rt/dist/lib/builtins/x86_64/floatundixf.S | 64 +
sys/external/bsd/compiler_rt/dist/lib/profile/PGOProfiling.c | 5 +-
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/absvdi2_test.c | 65 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/absvsi2_test.c | 65 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/absvti2_test.c | 84 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/adddf3vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/addsf3vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/addvdi3_test.c | 58 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/addvsi3_test.c | 58 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/addvti3_test.c | 94 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ashldi3_test.c | 77 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ashlti3_test.c | 175 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ashrdi3_test.c | 118 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ashrti3_test.c | 173 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/bswapdi2_test.c | 44 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/bswapsi2_test.c | 44 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/clear_cache_test.c | 76 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/clzdi2_test.c | 68 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/clzsi2_test.c | 599 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/clzti2_test.c | 90 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/cmpdi2_test.c | 77 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/cmpti2_test.c | 112 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/comparedf2_test.c | 479 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/comparesf2_test.c | 479 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ctzdi2_test.c | 67 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ctzsi2_test.c | 569 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ctzti2_test.c | 84 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divdc3_test.c | 370 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divdf3vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divdi3_test.c | 58 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divmodsi4_test.c | 73 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divsc3_test.c | 370 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divsf3vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divsi3_test.c | 56 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divtc3_test.c | 382 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divti3_test.c | 78 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/divxc3_test.c | 379 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/enable_execute_stack_test.c | 72 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/endianness.h | 109 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/eqdf2vfp_test.c | 55 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/eqsf2vfp_test.c | 51 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/extebdsfdf2vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ffsdi2_test.c | 66 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ffsti2_test.c | 83 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixdfdi_test.c | 94 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixdfsivfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixdfti_test.c | 123 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixsfdi_test.c | 84 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixsfsivfp_test.c | 52 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixsfti_test.c | 111 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsdfdi_test.c | 106 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsdfsi_test.c | 100 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsdfsivfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsdfti_test.c | 128 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunssfdi_test.c | 95 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunssfsi_test.c | 93 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunssfsivfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunssfti_test.c | 120 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunstfdi_test.c | 121 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsxfdi_test.c | 124 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsxfsi_test.c | 105 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixunsxfti_test.c | 141 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixxfdi_test.c | 115 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/fixxfti_test.c | 146 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatdidf_test.c | 137 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatdisf_test.c | 95 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatdixf_test.c | 144 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatsidfvfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatsisfvfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floattidf_test.c | 180 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floattisf_test.c | 136 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floattixf_test.c | 212 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatundidf_test.c | 132 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatundisf_test.c | 96 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatundixf_test.c | 145 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatunssidfvfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatunssisfvfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatuntidf_test.c | 174 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatuntisf_test.c | 165 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/floatuntixf_test.c | 219 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/gcc_personality_test.c | 42 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/gcc_personality_test_helper.cxx | 85 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/gedf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/gesf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/gtdf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/gtsf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ledf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/lesf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/lshrdi3_test.c | 118 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/lshrti3_test.c | 173 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ltdf2vfp_test.c | 51 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ltsf2vfp_test.c | 53 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/moddi3_test.c | 62 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/modsi3_test.c | 57 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/modti3_test.c | 95 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/muldc3_test.c | 366 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/muldf3vfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/muldi3_test.c | 110 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulodi4_test.c | 178 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulosi4_test.c | 156 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/muloti4_test.c | 280 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulsc3_test.c | 370 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulsf3vfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/multc3_test.c | 374 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/multi3_test.c | 134 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulvdi3_test.c | 175 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulvsi3_test.c | 148 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulvti3_test.c | 260 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/mulxc3_test.c | 375 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/nedf2vfp_test.c | 51 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negdf2vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negdi2_test.c | 84 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negsf2vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negti2_test.c | 127 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negvdi2_test.c | 57 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negvsi2_test.c | 56 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/negvti2_test.c | 109 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/nesf2vfp_test.c | 51 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/paritydi2_test.c | 51 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/paritysi2_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/parityti2_test.c | 64 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/popcountdi2_test.c | 63 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/popcountsi2_test.c | 62 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/popcountti2_test.c | 82 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/powidf2_test.c | 224 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/powisf2_test.c | 224 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/powitf2_test.c | 232 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/powixf2_test.c | 232 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/DD.h | 14 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/fixtfdi_test.c | 477 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/floatditf_test.c | 30 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/floatditf_test.h | 38018 +++++
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/floatunditf_test.c | 30 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/floatunditf_test.h | 19014 ++
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/qadd_test.c | 1872 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/qdiv_test.c | 795 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/qmul_test.c | 793 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/qsub_test.c | 1874 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ppc/test | 18 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/subdf3vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/subsf3vfp_test.c | 48 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/subvdi3_test.c | 60 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/subvsi3_test.c | 60 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/subvti3_test.c | 80 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/test | 68 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/trampoline_setup_test.c | 64 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/truncdfsf2vfp_test.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ucmpdi2_test.c | 75 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/ucmpti2_test.c | 116 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/udivdi3_test.c | 44 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/udivmoddi4_test.c | 20639 +++
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/udivmodsi4_test.c | 59 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/udivmodti4_test.c | 65353 ++++++++++
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/udivsi3_test.c | 175 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/udivti3_test.c | 67 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/umoddi3_test.c | 44 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/umodsi3_test.c | 175 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/umodti3_test.c | 65 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/unorddf2vfp_test.c | 49 +
sys/external/bsd/compiler_rt/dist/test/builtins/Unit/unordsf2vfp_test.c | 49 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/ashldi3.c | 49 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/ashrdi3.c | 49 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/divdi3.c | 52 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/floatdidf.c | 47 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/floatdisf.c | 47 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/floatdixf.c | 47 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/floatundidf.c | 44 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/floatundisf.c | 47 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/floatundixf.c | 47 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/lshrdi3.c | 49 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/moddi3.c | 52 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/modsi3.c | 52 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/muldi3.c | 52 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/negdi2.c | 50 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/time | 39 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/timing.h | 28 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/udivdi3.c | 52 +
sys/external/bsd/compiler_rt/dist/test/builtins/timing/umoddi3.c | 52 +
409 files changed, 180477 insertions(+), 2 deletions(-)
diffs (truncated from 182128 to 300 lines):
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/CREDITS.TXT
--- a/sys/external/bsd/compiler_rt/dist/CREDITS.TXT Wed Feb 26 22:29:40 2014 +0000
+++ b/sys/external/bsd/compiler_rt/dist/CREDITS.TXT Wed Feb 26 22:31:29 2014 +0000
@@ -22,3 +22,11 @@
N: Howard Hinnant
E: hhinnant%apple.com@localhost
D: Architect and primary author of compiler-rt
+
+N: Matt Thomas
+E: matt%NetBSD.org@localhost
+D: ARM improvements.
+
+N: Joerg Sonnenberger
+E: joerg%NetBSD.org@localhost
+D: Maintains port.
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/LICENSE.TXT
--- a/sys/external/bsd/compiler_rt/dist/LICENSE.TXT Wed Feb 26 22:29:40 2014 +0000
+++ b/sys/external/bsd/compiler_rt/dist/LICENSE.TXT Wed Feb 26 22:31:29 2014 +0000
@@ -94,4 +94,4 @@
Program Directory
------- ---------
-mach_override lib/interception/mach_override
+android headers third_party/android
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/lib/builtins/absvdi2.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/external/bsd/compiler_rt/dist/lib/builtins/absvdi2.c Wed Feb 26 22:31:29 2014 +0000
@@ -0,0 +1,29 @@
+/*===-- absvdi2.c - Implement __absvdi2 -----------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===
+ *
+ * This file implements __absvdi2 for the compiler_rt library.
+ *
+ *===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+/* Returns: absolute value */
+
+/* Effects: aborts if abs(x) < 0 */
+
+COMPILER_RT_ABI di_int
+__absvdi2(di_int a)
+{
+ const int N = (int)(sizeof(di_int) * CHAR_BIT);
+ if (a == ((di_int)1 << (N-1)))
+ compilerrt_abort();
+ const di_int t = a >> (N - 1);
+ return (a ^ t) - t;
+}
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/lib/builtins/absvsi2.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/external/bsd/compiler_rt/dist/lib/builtins/absvsi2.c Wed Feb 26 22:31:29 2014 +0000
@@ -0,0 +1,29 @@
+/* ===-- absvsi2.c - Implement __absvsi2 -----------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __absvsi2 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+/* Returns: absolute value */
+
+/* Effects: aborts if abs(x) < 0 */
+
+COMPILER_RT_ABI si_int
+__absvsi2(si_int a)
+{
+ const int N = (int)(sizeof(si_int) * CHAR_BIT);
+ if (a == (1 << (N-1)))
+ compilerrt_abort();
+ const si_int t = a >> (N - 1);
+ return (a ^ t) - t;
+}
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/lib/builtins/absvti2.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/external/bsd/compiler_rt/dist/lib/builtins/absvti2.c Wed Feb 26 22:31:29 2014 +0000
@@ -0,0 +1,34 @@
+/* ===-- absvti2.c - Implement __absvdi2 -----------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __absvti2 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+#ifdef CRT_HAS_128BIT
+
+/* Returns: absolute value */
+
+/* Effects: aborts if abs(x) < 0 */
+
+ti_int
+__absvti2(ti_int a)
+{
+ const int N = (int)(sizeof(ti_int) * CHAR_BIT);
+ if (a == ((ti_int)1 << (N-1)))
+ compilerrt_abort();
+ const ti_int s = a >> (N - 1);
+ return (a ^ s) - s;
+}
+
+#endif /* CRT_HAS_128BIT */
+
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c Wed Feb 26 22:31:29 2014 +0000
@@ -0,0 +1,152 @@
+//===-- lib/adddf3.c - Double-precision addition ------------------*- C -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements double-precision soft-float addition with the IEEE-754
+// default rounding (to nearest, ties to even).
+//
+//===----------------------------------------------------------------------===//
+
+#define DOUBLE_PRECISION
+#include "fp_lib.h"
+
+ARM_EABI_FNALIAS(dadd, adddf3)
+
+COMPILER_RT_ABI fp_t
+__adddf3(fp_t a, fp_t b) {
+
+ rep_t aRep = toRep(a);
+ rep_t bRep = toRep(b);
+ const rep_t aAbs = aRep & absMask;
+ const rep_t bAbs = bRep & absMask;
+
+ // Detect if a or b is zero, infinity, or NaN.
+ if (aAbs - 1U >= infRep - 1U || bAbs - 1U >= infRep - 1U) {
+
+ // NaN + anything = qNaN
+ if (aAbs > infRep) return fromRep(toRep(a) | quietBit);
+ // anything + NaN = qNaN
+ if (bAbs > infRep) return fromRep(toRep(b) | quietBit);
+
+ if (aAbs == infRep) {
+ // +/-infinity + -/+infinity = qNaN
+ if ((toRep(a) ^ toRep(b)) == signBit) return fromRep(qnanRep);
+ // +/-infinity + anything remaining = +/- infinity
+ else return a;
+ }
+
+ // anything remaining + +/-infinity = +/-infinity
+ if (bAbs == infRep) return b;
+
+ // zero + anything = anything
+ if (!aAbs) {
+ // but we need to get the sign right for zero + zero
+ if (!bAbs) return fromRep(toRep(a) & toRep(b));
+ else return b;
+ }
+
+ // anything + zero = anything
+ if (!bAbs) return a;
+ }
+
+ // Swap a and b if necessary so that a has the larger absolute value.
+ if (bAbs > aAbs) {
+ const rep_t temp = aRep;
+ aRep = bRep;
+ bRep = temp;
+ }
+
+ // Extract the exponent and significand from the (possibly swapped) a and b.
+ int aExponent = aRep >> significandBits & maxExponent;
+ int bExponent = bRep >> significandBits & maxExponent;
+ rep_t aSignificand = aRep & significandMask;
+ rep_t bSignificand = bRep & significandMask;
+
+ // Normalize any denormals, and adjust the exponent accordingly.
+ if (aExponent == 0) aExponent = normalize(&aSignificand);
+ if (bExponent == 0) bExponent = normalize(&bSignificand);
+
+ // The sign of the result is the sign of the larger operand, a. If they
+ // have opposite signs, we are performing a subtraction; otherwise addition.
+ const rep_t resultSign = aRep & signBit;
+ const bool subtraction = (aRep ^ bRep) & signBit;
+
+ // Shift the significands to give us round, guard and sticky, and or in the
+ // implicit significand bit. (If we fell through from the denormal path it
+ // was already set by normalize( ), but setting it twice won't hurt
+ // anything.)
+ aSignificand = (aSignificand | implicitBit) << 3;
+ bSignificand = (bSignificand | implicitBit) << 3;
+
+ // Shift the significand of b by the difference in exponents, with a sticky
+ // bottom bit to get rounding correct.
+ const unsigned int align = aExponent - bExponent;
+ if (align) {
+ if (align < typeWidth) {
+ const bool sticky = bSignificand << (typeWidth - align);
+ bSignificand = bSignificand >> align | sticky;
+ } else {
+ bSignificand = 1; // sticky; b is known to be non-zero.
+ }
+ }
+
+ if (subtraction) {
+ aSignificand -= bSignificand;
+
+ // If a == -b, return +zero.
+ if (aSignificand == 0) return fromRep(0);
+
+ // If partial cancellation occured, we need to left-shift the result
+ // and adjust the exponent:
+ if (aSignificand < implicitBit << 3) {
+ const int shift = rep_clz(aSignificand) - rep_clz(implicitBit << 3);
+ aSignificand <<= shift;
+ aExponent -= shift;
+ }
+ }
+
+ else /* addition */ {
+ aSignificand += bSignificand;
+
+ // If the addition carried up, we need to right-shift the result and
+ // adjust the exponent:
+ if (aSignificand & implicitBit << 4) {
+ const bool sticky = aSignificand & 1;
+ aSignificand = aSignificand >> 1 | sticky;
+ aExponent += 1;
+ }
+ }
+
+ // If we have overflowed the type, return +/- infinity:
+ if (aExponent >= maxExponent) return fromRep(infRep | resultSign);
+
+ if (aExponent <= 0) {
+ // Result is denormal before rounding; the exponent is zero and we
+ // need to shift the significand.
+ const int shift = 1 - aExponent;
+ const bool sticky = aSignificand << (typeWidth - shift);
+ aSignificand = aSignificand >> shift | sticky;
+ aExponent = 0;
+ }
+
+ // Low three bits are round, guard, and sticky.
+ const int roundGuardSticky = aSignificand & 0x7;
+
+ // Shift the significand into place, and mask off the implicit bit.
+ rep_t result = aSignificand >> 3 & significandMask;
+
+ // Insert the exponent and sign.
+ result |= (rep_t)aExponent << significandBits;
+ result |= resultSign;
+
+ // Final rounding. The result may overflow to infinity, but that is the
+ // correct result in that case.
+ if (roundGuardSticky > 0x4) result++;
+ if (roundGuardSticky == 0x4) result += result & 1;
+ return fromRep(result);
+}
diff -r d3498fb8dc9f -r c29226cb8569 sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c Wed Feb 26 22:31:29 2014 +0000
@@ -0,0 +1,151 @@
+//===-- lib/addsf3.c - Single-precision addition ------------------*- C -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements single-precision soft-float addition with the IEEE-754
+// default rounding (to nearest, ties to even).
+//
Home |
Main Index |
Thread Index |
Old Index