7.3 KiB
7.3 KiB
rustc-builtins
[WIP] Porting
compiler-rt
intrinsics to Rust
See rust-lang/rust#35437.
Contributing
- Pick one or more intrinsics from the [pending list][/#progress].
- Fork this repository
- Port the intrinsic(s) and their corresponding unit tests from their C implementation to Rust.
- Send a Pull Request (PR)
- Once the PR passes our extensive testing infrastructure, we'll merge it!
- Celebrate 🎉
Progress
The intrinsics that involve quadruple precision floating point numbers ("f128
") has been crossed
off because Rust doesn't support them.
- absvdi2.c
- absvsi2.c
- absvti2.c
- adddf3.c
- addsf3.c
- addtf3.c
- addvdi3.c
- addvsi3.c
- addvti3.c
- apple_versioning.c
- arm/adddf3vfp.S
- arm/addsf3vfp.S
- arm/aeabi_cdcmp.S
- arm/aeabi_cdcmpeq_check_nan.c
- arm/aeabi_cfcmp.S
- arm/aeabi_cfcmpeq_check_nan.c
- arm/aeabi_dcmp.S
- arm/aeabi_div0.c
- arm/aeabi_drsub.c
- arm/aeabi_fcmp.S
- arm/aeabi_frsub.c
- arm/aeabi_idivmod.S
- arm/aeabi_ldivmod.S
- arm/aeabi_uidivmod.S
- arm/aeabi_uldivmod.S
- arm/bswapdi2.S
- arm/bswapsi2.S
- arm/clzdi2.S
- arm/clzsi2.S
- arm/comparesf2.S
- arm/divdf3vfp.S
- arm/divmodsi4.S
- arm/divsf3vfp.S
- arm/divsi3.S
- arm/eqdf2vfp.S
- arm/eqsf2vfp.S
- arm/extendsfdf2vfp.S
- arm/fixdfsivfp.S
- arm/fixsfsivfp.S
- arm/fixunsdfsivfp.S
- arm/fixunssfsivfp.S
- arm/floatsidfvfp.S
- arm/floatsisfvfp.S
- arm/floatunssidfvfp.S
- arm/floatunssisfvfp.S
- arm/gedf2vfp.S
- arm/gesf2vfp.S
- arm/gtdf2vfp.S
- arm/gtsf2vfp.S
- arm/ledf2vfp.S
- arm/lesf2vfp.S
- arm/ltdf2vfp.S
- arm/ltsf2vfp.S
- arm/modsi3.S
- arm/muldf3vfp.S
- arm/mulsf3vfp.S
- arm/nedf2vfp.S
- arm/negdf2vfp.S
- arm/negsf2vfp.S
- arm/nesf2vfp.S
- arm/restore_vfp_d8_d15_regs.S
- arm/save_vfp_d8_d15_regs.S
- arm/softfloat-alias.list
- arm/subdf3vfp.S
- arm/subsf3vfp.S
- arm/switch16.S
- arm/switch32.S
- arm/switch8.S
- arm/switchu8.S
- arm/sync_fetch_and_add_4.S
- arm/sync_fetch_and_add_8.S
- arm/sync_fetch_and_and_4.S
- arm/sync_fetch_and_and_8.S
- arm/sync_fetch_and_max_4.S
- arm/sync_fetch_and_max_8.S
- arm/sync_fetch_and_min_4.S
- arm/sync_fetch_and_min_8.S
- arm/sync_fetch_and_nand_4.S
- arm/sync_fetch_and_nand_8.S
- arm/sync_fetch_and_or_4.S
- arm/sync_fetch_and_or_8.S
- arm/sync_fetch_and_sub_4.S
- arm/sync_fetch_and_sub_8.S
- arm/sync_fetch_and_umax_4.S
- arm/sync_fetch_and_umax_8.S
- arm/sync_fetch_and_umin_4.S
- arm/sync_fetch_and_umin_8.S
- arm/sync_fetch_and_xor_4.S
- arm/sync_fetch_and_xor_8.S
- arm/sync_synchronize.S
- arm/truncdfsf2vfp.S
- arm/udivmodsi4.S
- arm/udivsi3.S
- arm/umodsi3.S
- arm/unorddf2vfp.S
- arm/unordsf2vfp.S
- ashldi3.c
- ashlti3.c
- ashrdi3.c
- ashrti3.c
- atomic.c
- atomic_flag_clear.c
- atomic_flag_clear_explicit.c
- atomic_flag_test_and_set.c
- atomic_flag_test_and_set_explicit.c
- atomic_signal_fence.c
- atomic_thread_fence.c
- clear_cache.c
- clzdi2.c
- clzsi2.c
- clzti2.c
- cmpdi2.c
- cmpti2.c
- comparedf2.c
- comparesf2.c
- comparetf2.c
- cpu_model.c
- ctzdi2.c
- ctzsi2.c
- ctzti2.c
- divdc3.c
- divdf3.c
- divdi3.c
- divmoddi4.c
- divmodsi4.c
- divsc3.c
- divsf3.c
- divsi3.c
- divtc3.c
- divtf3.c
- divti3.c
- divxc3.c
- emutls.c
- enable_execute_stack.c
- eprintf.c
- extenddftf2.c
- extendhfsf2.c
- extendsfdf2.c
- extendsftf2.c
- ffsdi2.c
- ffsti2.c
- fixdfdi.c
- fixdfsi.c
- fixdfti.c
- fixsfdi.c
- fixsfsi.c
- fixsfti.c
- fixtfdi.c
- fixtfsi.c
- fixtfti.c
- fixunsdfdi.c
- fixunsdfsi.c
- fixunsdfti.c
- fixunssfdi.c
- fixunssfsi.c
- fixunssfti.c
- fixunstfdi.c
- fixunstfsi.c
- fixunstfti.c
- floatdidf.c
- floatdisf.c
- floatditf.c
- floatsidf.c
- floatsisf.c
- floatsitf.c
- floattidf.c
- floattisf.c
- floatundidf.c
- floatundisf.c
- floatunditf.c
- floatunsidf.c
- floatunsisf.c
- floatunsitf.c
- floatuntidf.c
- floatuntisf.c
- gcc_personality_v0.c
- i386/ashldi3.S
- i386/ashrdi3.S
- i386/chkstk.S
- i386/chkstk2.S
- i386/divdi3.S
- i386/floatdidf.S
- i386/floatdisf.S
- i386/floatundidf.S
- i386/floatundisf.S
- i386/lshrdi3.S
- i386/moddi3.S
- i386/muldi3.S
- i386/udivdi3.S
- i386/umoddi3.S
- int_util.c
- lshrdi3.c
- lshrti3.c
- moddi3.c
- modsi3.c
- modti3.c
- muldc3.c
- muldf3.c
- muldi3.c
- mulodi4.c
- mulosi4.c
- muloti4.c
- mulsc3.c
- mulsf3.c
- multc3.c
- multf3.c
- multi3.c
- mulvdi3.c
- mulvsi3.c
- mulvti3.c
- mulxc3.c
- negdf2.c
- negdi2.c
- negsf2.c
- negti2.c
- negvdi2.c
- negvsi2.c
- negvti2.c
- paritydi2.c
- paritysi2.c
- parityti2.c
- popcountdi2.c
- popcountsi2.c
- popcountti2.c
- powidf2.c
- powisf2.c
- powitf2.c
- ppc/divtc3.c
- ppc/fixtfdi.c
- ppc/fixunstfdi.c
- ppc/floatditf.c
- ppc/floatunditf.c
- ppc/gcc_qadd.c
- ppc/gcc_qdiv.c
- ppc/gcc_qmul.c
- ppc/gcc_qsub.c
- ppc/multc3.c
- ppc/restFP.S
- ppc/saveFP.S
- subdf3.c
- subsf3.c
- subtf3.c
- subvdi3.c
- subvsi3.c
- subvti3.c
- trampoline_setup.c
- truncdfhf2.c
- truncdfsf2.c
- truncsfhf2.c
- trunctfdf2.c
- trunctfsf2.c
- ucmpdi2.c
- ucmpti2.c
- udivdi3.c
- udivmoddi4.c
- udivmodsi4.c
- udivmodti4.c
- udivsi3.c
- udivti3.c
- umoddi3.c
- umodsi3.c
- umodti3.c
- x86_64/chkstk.S
- x86_64/chkstk2.S
- x86_64/floatundidf.S
- x86_64/floatundisf.S
- arm/aeabi_memcmp.S
- arm/aeabi_memcpy.S
- arm/aeabi_memmove.S
- arm/aeabi_memset.S
- x86_64/floatdidf.c
- x86_64/floatdisf.c
fixunsxfdi.cfixunsxfsi.cfixunsxfti.cfixxfdi.cfixxfti.cfloatdixf.cfloattixf.cfloatundixf.cfloatuntixf.ci386/floatdixf.Si386/floatundixf.Spowixf2.cx86_64/floatdixf.cx86_64/floatundixf.S
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.