Skip to content

Commit d51dfa7

Browse files
committed
Add missing symbols from compiler-rt to the README
1 parent cfbd7d1 commit d51dfa7

File tree

1 file changed

+82
-4
lines changed

1 file changed

+82
-4
lines changed

README.md

+82-4
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ you can use this crate to get those intrinsics and solve the linker errors. To
1616
do that, add this crate somewhere in the dependency graph of the crate you are
1717
building:
1818

19-
``` toml
19+
```toml
2020
# Cargo.toml
2121
[dependencies]
2222
compiler_builtins = { git = "https://github.com/rust-lang/compiler-builtins" }
2323
```
2424

25-
``` rust
25+
```rust
2626
extern crate compiler_builtins;
2727

2828
// ...
@@ -91,7 +91,7 @@ obtained with the following:
9191
```sh
9292
curl -L -o rustc-llvm-18.0.tar.gz https://github.com/rust-lang/llvm-project/archive/rustc/18.0-2024-02-13.tar.gz
9393
tar xzf rustc-llvm-18.0.tar.gz --strip-components 1 llvm-project-rustc-18.0-2024-02-13/compiler-rt
94-
````
94+
```
9595

9696
Local targets may also be tested with `./ci/run.sh [target]`.
9797

@@ -100,9 +100,11 @@ rely on CI.
100100

101101
## Progress
102102

103+
- [x] aarch64/chkstk.S
103104
- [x] adddf3.c
104105
- [x] addsf3.c
105106
- [x] arm/adddf3vfp.S
107+
- [x] arm/addsf3.S
106108
- [x] arm/addsf3vfp.S
107109
- [x] arm/aeabi_dcmp.S
108110
- [x] arm/aeabi_fcmp.S
@@ -113,6 +115,7 @@ rely on CI.
113115
- [x] arm/aeabi_memset.S
114116
- [x] arm/aeabi_uidivmod.S
115117
- [x] arm/aeabi_uldivmod.S
118+
- [ ] arm/chkstk.S
116119
- [x] arm/divdf3vfp.S
117120
- [ ] arm/divmodsi4.S (generic version is done)
118121
- [x] arm/divsf3vfp.S
@@ -154,6 +157,12 @@ rely on CI.
154157
- [ ] arm/unordsf2vfp.S
155158
- [x] ashldi3.c
156159
- [x] ashrdi3.c
160+
- [ ] avr/divmodhi4.S
161+
- [ ] avr/divmodqi4.S
162+
- [ ] avr/mulhi3.S
163+
- [ ] avr/mulqi3.S
164+
- [ ] avr/udivmodhi4.S
165+
- [ ] avr/udivmodqi4.S
157166
- [x] bswapdi2.c
158167
- [x] bswapsi2.c
159168
- [x] bswapti2.c
@@ -163,6 +172,7 @@ rely on CI.
163172
- [x] divdi3.c
164173
- [x] divmoddi4.c
165174
- [x] divmodsi4.c
175+
- [x] divmodti4.c
166176
- [x] divsf3.c
167177
- [x] divsi3.c
168178
- [x] extendsfdf2.c
@@ -201,6 +211,8 @@ rely on CI.
201211
- [x] mulsf3.c
202212
- [x] powidf2.c
203213
- [x] powisf2.c
214+
- [ ] riscv/muldi3.S
215+
- [ ] riscv/mulsi3.S
204216
- [x] subdf3.c
205217
- [x] subsf3.c
206218
- [x] truncdfsf2.c
@@ -233,7 +245,8 @@ These builtins are needed to support 128-bit integers.
233245
- [x] udivti3.c
234246
- [x] umodti3.c
235247

236-
These builtins are needed to support `f16` and `f128`, which are in the process of being added to Rust.
248+
These builtins are needed to support `f16` and `f128`, which are in the process
249+
of being added to Rust.
237250

238251
- [x] addtf3.c
239252
- [x] comparetf2.c
@@ -250,8 +263,10 @@ These builtins are needed to support `f16` and `f128`, which are in the process
250263
- [x] fixunstfti.c
251264
- [ ] floatditf.c
252265
- [ ] floatsitf.c
266+
- [ ] floattitf.c
253267
- [ ] floatunditf.c
254268
- [ ] floatunsitf.c
269+
- [ ] floatuntitf.c
255270
- [x] multf3.c
256271
- [ ] powitf2.c
257272
- [x] subtf3.c
@@ -261,11 +276,42 @@ These builtins are needed to support `f16` and `f128`, which are in the process
261276
- [x] trunctfhf2.c
262277
- [x] trunctfsf2.c
263278

279+
280+
These builtins are used by the Hexagon DSP
281+
282+
- [ ] hexagon/common_entry_exit_abi1.S
283+
- [ ] hexagon/common_entry_exit_abi2.S
284+
- [ ] hexagon/common_entry_exit_legacy.S
285+
- [x] hexagon/dfaddsub.S~~
286+
- [x] hexagon/dfdiv.S~~
287+
- [x] hexagon/dffma.S~~
288+
- [x] hexagon/dfminmax.S~~
289+
- [x] hexagon/dfmul.S~~
290+
- [x] hexagon/dfsqrt.S~~
291+
- [x] hexagon/divdi3.S~~
292+
- [x] hexagon/divsi3.S~~
293+
- [x] hexagon/fastmath2_dlib_asm.S~~
294+
- [x] hexagon/fastmath2_ldlib_asm.S~~
295+
- [x] hexagon/fastmath_dlib_asm.S~~
296+
- [x] hexagon/memcpy_forward_vp4cp4n2.S~~
297+
- [x] hexagon/memcpy_likely_aligned.S~~
298+
- [x] hexagon/moddi3.S~~
299+
- [x] hexagon/modsi3.S~~
300+
- [x] hexagon/sfdiv_opt.S~~
301+
- [x] hexagon/sfsqrt_opt.S~~
302+
- [x] hexagon/udivdi3.S~~
303+
- [x] hexagon/udivmoddi4.S~~
304+
- [x] hexagon/udivmodsi4.S~~
305+
- [x] hexagon/udivsi3.S~~
306+
- [x] hexagon/umoddi3.S~~
307+
- [x] hexagon/umodsi3.S~~
308+
264309
## Unimplemented functions
265310

266311
These builtins are for x87 `f80` floating-point numbers that are not supported
267312
by Rust.
268313

314+
- ~~extendxftf2.c~~
269315
- ~~fixunsxfdi.c~~
270316
- ~~fixunsxfsi.c~~
271317
- ~~fixunsxfti.c~~
@@ -285,15 +331,25 @@ numbers.
285331

286332
- ~~ppc/divtc3.c~~
287333
- ~~ppc/fixtfdi.c~~
334+
- ~~ppc/fixtfti.c~~
288335
- ~~ppc/fixunstfdi.c~~
336+
- ~~ppc/fixunstfti.c~~
289337
- ~~ppc/floatditf.c~~
338+
- ~~ppc/floattitf.c~~
290339
- ~~ppc/floatunditf.c~~
291340
- ~~ppc/gcc_qadd.c~~
292341
- ~~ppc/gcc_qdiv.c~~
293342
- ~~ppc/gcc_qmul.c~~
294343
- ~~ppc/gcc_qsub.c~~
295344
- ~~ppc/multc3.c~~
296345

346+
These builtins are for 16-bit brain floating-point numbers that are not
347+
supported by Rust.
348+
349+
- ~~truncdfbf2.c~~
350+
- ~~truncsfbf2.c~~
351+
- ~~trunctfxf2.c~~
352+
297353
These builtins involve complex floating-point types that are not supported by
298354
Rust.
299355

@@ -342,6 +398,7 @@ These builtins are never called by LLVM.
342398
- ~~ctzdi2.c~~
343399
- ~~ctzsi2.c~~
344400
- ~~ctzti2.c~~
401+
- ~~ffssi2.c~~
345402
- ~~ffsdi2.c~~ - this is [called by gcc][jemalloc-fail] though!
346403
- ~~ffsti2.c~~
347404
- ~~mulvdi3.c~~
@@ -404,13 +461,34 @@ Rust only exposes atomic types on platforms that support them, and therefore doe
404461

405462
Miscellaneous functionality that is not used by Rust.
406463

464+
- ~~aarch64/fp_mode.c~~
465+
- ~~aarch64/lse.S~~ (LSE atomics)
466+
- ~~aarch64/sme-abi-init.c~~ (matrix extension)
467+
- ~~aarch64/sme-abi.S~~ (matrix extension)
468+
- ~~aarch64/sme-libc-routines.c~~ (matrix extension)
407469
- ~~apple_versioning.c~~
470+
- ~~arm/fp_mode.c~~
471+
- ~~avr/exit.S~~
408472
- ~~clear_cache.c~~
473+
- ~~cpu_model/aarch64.c~~
474+
- ~~cpu_model/x86.c~~
475+
- ~~crtbegin.c~~
476+
- ~~crtend.c~~
409477
- ~~emutls.c~~
410478
- ~~enable_execute_stack.c~~
411479
- ~~eprintf.c~~
480+
- ~~fp_mode.c~~ (float exception handling)
412481
- ~~gcc_personality_v0.c~~
482+
- ~~i386/fp_mode.c~~
483+
- ~~int_util.c~~
484+
- ~~loongarch/fp_mode.c~~
485+
- ~~os_version_check.c~~
486+
- ~~riscv/fp_mode.c~~
487+
- ~~riscv/restore.S~~ (callee-saved registers)
488+
- ~~riscv/save.S~~ (callee-saved registers)
413489
- ~~trampoline_setup.c~~
490+
- ~~ve/grow_stack.S~~
491+
- ~~ve/grow_stack_align.S~~
414492

415493
Floating-point implementations of builtins that are only called from soft-float code. It would be better to simply use the generic soft-float versions in this case.
416494

0 commit comments

Comments
 (0)