@@ -10,6 +10,312 @@ See [rust-lang/rust#35437][0].
10
10
11
11
[ 0 ] : https://github.com/rust-lang/rust/issues/35437
12
12
13
+ ## Contributing
14
+
15
+ 1 . Pick one or more intrinsics from the [ pending list] [ /#progress ] .
16
+ 2 . Fork this repository
17
+ 3 . Port the intrinsic(s) and their corresponding [ unit tests] [ 1 ] from their [ C implementation] [ 2 ] to
18
+ Rust.
19
+ 4 . Send a Pull Request (PR)
20
+ 5 . Once the PR passes our extensive [ testing infrastructure] [ 3 ] , we'll merge it!
21
+ 6 . Celebrate :tada :
22
+
23
+ [ 1 ] : https://github.com/rust-lang/compiler-rt/tree/8598065bd965d9713bfafb6c1e766d63a7b17b89/test/builtins/Unit
24
+ [ 2 ] : https://github.com/rust-lang/compiler-rt/tree/8598065bd965d9713bfafb6c1e766d63a7b17b89/lib/builtins
25
+ [ 3 ] : https://travis-ci.org/japaric/rustc-builtins
26
+
27
+ ## Progress
28
+
29
+ The intrinsics that involve quadruple precision floating point numbers ("` f128 ` ") has been crossed
30
+ off because Rust doesn't support them.
31
+
32
+ - [ ] absvdi2.c
33
+ - [ ] absvsi2.c
34
+ - [ ] absvti2.c
35
+ - [ ] adddf3.c
36
+ - [ ] addsf3.c
37
+ - [ ] addtf3.c
38
+ - [ ] addvdi3.c
39
+ - [ ] addvsi3.c
40
+ - [ ] addvti3.c
41
+ - [ ] apple_versioning.c
42
+ - [ ] arm/adddf3vfp.S
43
+ - [ ] arm/addsf3vfp.S
44
+ - [ ] arm/aeabi_cdcmp.S
45
+ - [ ] arm/aeabi_cdcmpeq_check_nan.c
46
+ - [ ] arm/aeabi_cfcmp.S
47
+ - [ ] arm/aeabi_cfcmpeq_check_nan.c
48
+ - [ ] arm/aeabi_dcmp.S
49
+ - [ ] arm/aeabi_div0.c
50
+ - [ ] arm/aeabi_drsub.c
51
+ - [ ] arm/aeabi_fcmp.S
52
+ - [ ] arm/aeabi_frsub.c
53
+ - [ ] arm/aeabi_idivmod.S
54
+ - [ ] arm/aeabi_ldivmod.S
55
+ - [ ] arm/aeabi_uidivmod.S
56
+ - [ ] arm/aeabi_uldivmod.S
57
+ - [ ] arm/bswapdi2.S
58
+ - [ ] arm/bswapsi2.S
59
+ - [ ] arm/clzdi2.S
60
+ - [ ] arm/clzsi2.S
61
+ - [ ] arm/comparesf2.S
62
+ - [ ] arm/divdf3vfp.S
63
+ - [ ] arm/divmodsi4.S
64
+ - [ ] arm/divsf3vfp.S
65
+ - [ ] arm/divsi3.S
66
+ - [ ] arm/eqdf2vfp.S
67
+ - [ ] arm/eqsf2vfp.S
68
+ - [ ] arm/extendsfdf2vfp.S
69
+ - [ ] arm/fixdfsivfp.S
70
+ - [ ] arm/fixsfsivfp.S
71
+ - [ ] arm/fixunsdfsivfp.S
72
+ - [ ] arm/fixunssfsivfp.S
73
+ - [ ] arm/floatsidfvfp.S
74
+ - [ ] arm/floatsisfvfp.S
75
+ - [ ] arm/floatunssidfvfp.S
76
+ - [ ] arm/floatunssisfvfp.S
77
+ - [ ] arm/gedf2vfp.S
78
+ - [ ] arm/gesf2vfp.S
79
+ - [ ] arm/gtdf2vfp.S
80
+ - [ ] arm/gtsf2vfp.S
81
+ - [ ] arm/ledf2vfp.S
82
+ - [ ] arm/lesf2vfp.S
83
+ - [ ] arm/ltdf2vfp.S
84
+ - [ ] arm/ltsf2vfp.S
85
+ - [ ] arm/modsi3.S
86
+ - [ ] arm/muldf3vfp.S
87
+ - [ ] arm/mulsf3vfp.S
88
+ - [ ] arm/nedf2vfp.S
89
+ - [ ] arm/negdf2vfp.S
90
+ - [ ] arm/negsf2vfp.S
91
+ - [ ] arm/nesf2vfp.S
92
+ - [ ] arm/restore_vfp_d8_d15_regs.S
93
+ - [ ] arm/save_vfp_d8_d15_regs.S
94
+ - [ ] arm/softfloat-alias.list
95
+ - [ ] arm/subdf3vfp.S
96
+ - [ ] arm/subsf3vfp.S
97
+ - [ ] arm/switch16.S
98
+ - [ ] arm/switch32.S
99
+ - [ ] arm/switch8.S
100
+ - [ ] arm/switchu8.S
101
+ - [ ] arm/sync_fetch_and_add_4.S
102
+ - [ ] arm/sync_fetch_and_add_8.S
103
+ - [ ] arm/sync_fetch_and_and_4.S
104
+ - [ ] arm/sync_fetch_and_and_8.S
105
+ - [ ] arm/sync_fetch_and_max_4.S
106
+ - [ ] arm/sync_fetch_and_max_8.S
107
+ - [ ] arm/sync_fetch_and_min_4.S
108
+ - [ ] arm/sync_fetch_and_min_8.S
109
+ - [ ] arm/sync_fetch_and_nand_4.S
110
+ - [ ] arm/sync_fetch_and_nand_8.S
111
+ - [ ] arm/sync_fetch_and_or_4.S
112
+ - [ ] arm/sync_fetch_and_or_8.S
113
+ - [ ] arm/sync_fetch_and_sub_4.S
114
+ - [ ] arm/sync_fetch_and_sub_8.S
115
+ - [ ] arm/sync_fetch_and_umax_4.S
116
+ - [ ] arm/sync_fetch_and_umax_8.S
117
+ - [ ] arm/sync_fetch_and_umin_4.S
118
+ - [ ] arm/sync_fetch_and_umin_8.S
119
+ - [ ] arm/sync_fetch_and_xor_4.S
120
+ - [ ] arm/sync_fetch_and_xor_8.S
121
+ - [ ] arm/sync_synchronize.S
122
+ - [ ] arm/truncdfsf2vfp.S
123
+ - [ ] arm/udivmodsi4.S
124
+ - [ ] arm/udivsi3.S
125
+ - [ ] arm/umodsi3.S
126
+ - [ ] arm/unorddf2vfp.S
127
+ - [ ] arm/unordsf2vfp.S
128
+ - [ ] ashldi3.c
129
+ - [ ] ashlti3.c
130
+ - [ ] ashrdi3.c
131
+ - [ ] ashrti3.c
132
+ - [ ] atomic.c
133
+ - [ ] atomic_flag_clear.c
134
+ - [ ] atomic_flag_clear_explicit.c
135
+ - [ ] atomic_flag_test_and_set.c
136
+ - [ ] atomic_flag_test_and_set_explicit.c
137
+ - [ ] atomic_signal_fence.c
138
+ - [ ] atomic_thread_fence.c
139
+ - [ ] clear_cache.c
140
+ - [ ] clzdi2.c
141
+ - [ ] clzsi2.c
142
+ - [ ] clzti2.c
143
+ - [ ] cmpdi2.c
144
+ - [ ] cmpti2.c
145
+ - [ ] comparedf2.c
146
+ - [ ] comparesf2.c
147
+ - [ ] comparetf2.c
148
+ - [ ] cpu_model.c
149
+ - [ ] ctzdi2.c
150
+ - [ ] ctzsi2.c
151
+ - [ ] ctzti2.c
152
+ - [ ] divdc3.c
153
+ - [ ] divdf3.c
154
+ - [ ] divdi3.c
155
+ - [ ] divmoddi4.c
156
+ - [ ] divmodsi4.c
157
+ - [ ] divsc3.c
158
+ - [ ] divsf3.c
159
+ - [ ] divsi3.c
160
+ - [ ] divtc3.c
161
+ - [ ] divtf3.c
162
+ - [ ] divti3.c
163
+ - [ ] divxc3.c
164
+ - [ ] emutls.c
165
+ - [ ] enable_execute_stack.c
166
+ - [ ] eprintf.c
167
+ - [ ] extenddftf2.c
168
+ - [ ] extendhfsf2.c
169
+ - [ ] extendsfdf2.c
170
+ - [ ] extendsftf2.c
171
+ - [ ] ffsdi2.c
172
+ - [ ] ffsti2.c
173
+ - [ ] fixdfdi.c
174
+ - [ ] fixdfsi.c
175
+ - [ ] fixdfti.c
176
+ - [ ] fixsfdi.c
177
+ - [ ] fixsfsi.c
178
+ - [ ] fixsfti.c
179
+ - [ ] fixtfdi.c
180
+ - [ ] fixtfsi.c
181
+ - [ ] fixtfti.c
182
+ - [ ] fixunsdfdi.c
183
+ - [ ] fixunsdfsi.c
184
+ - [ ] fixunsdfti.c
185
+ - [ ] fixunssfdi.c
186
+ - [ ] fixunssfsi.c
187
+ - [ ] fixunssfti.c
188
+ - [ ] fixunstfdi.c
189
+ - [ ] fixunstfsi.c
190
+ - [ ] fixunstfti.c
191
+ - [ ] floatdidf.c
192
+ - [ ] floatdisf.c
193
+ - [ ] floatditf.c
194
+ - [ ] floatsidf.c
195
+ - [ ] floatsisf.c
196
+ - [ ] floatsitf.c
197
+ - [ ] floattidf.c
198
+ - [ ] floattisf.c
199
+ - [ ] floatundidf.c
200
+ - [ ] floatundisf.c
201
+ - [ ] floatunditf.c
202
+ - [ ] floatunsidf.c
203
+ - [ ] floatunsisf.c
204
+ - [ ] floatunsitf.c
205
+ - [ ] floatuntidf.c
206
+ - [ ] floatuntisf.c
207
+ - [ ] gcc_personality_v0.c
208
+ - [ ] i386/ashldi3.S
209
+ - [ ] i386/ashrdi3.S
210
+ - [ ] i386/chkstk.S
211
+ - [ ] i386/chkstk2.S
212
+ - [ ] i386/divdi3.S
213
+ - [ ] i386/floatdidf.S
214
+ - [ ] i386/floatdisf.S
215
+ - [ ] i386/floatundidf.S
216
+ - [ ] i386/floatundisf.S
217
+ - [ ] i386/lshrdi3.S
218
+ - [ ] i386/moddi3.S
219
+ - [ ] i386/muldi3.S
220
+ - [ ] i386/udivdi3.S
221
+ - [ ] i386/umoddi3.S
222
+ - [ ] int_util.c
223
+ - [ ] lshrdi3.c
224
+ - [ ] lshrti3.c
225
+ - [ ] moddi3.c
226
+ - [ ] modsi3.c
227
+ - [ ] modti3.c
228
+ - [ ] muldc3.c
229
+ - [ ] muldf3.c
230
+ - [ ] muldi3.c
231
+ - [ ] mulodi4.c
232
+ - [ ] mulosi4.c
233
+ - [ ] muloti4.c
234
+ - [ ] mulsc3.c
235
+ - [ ] mulsf3.c
236
+ - [ ] multc3.c
237
+ - [ ] multf3.c
238
+ - [ ] multi3.c
239
+ - [ ] mulvdi3.c
240
+ - [ ] mulvsi3.c
241
+ - [ ] mulvti3.c
242
+ - [ ] mulxc3.c
243
+ - [ ] negdf2.c
244
+ - [ ] negdi2.c
245
+ - [ ] negsf2.c
246
+ - [ ] negti2.c
247
+ - [ ] negvdi2.c
248
+ - [ ] negvsi2.c
249
+ - [ ] negvti2.c
250
+ - [ ] paritydi2.c
251
+ - [ ] paritysi2.c
252
+ - [ ] parityti2.c
253
+ - [ ] popcountdi2.c
254
+ - [ ] popcountsi2.c
255
+ - [ ] popcountti2.c
256
+ - [ ] powidf2.c
257
+ - [ ] powisf2.c
258
+ - [ ] powitf2.c
259
+ - [ ] ppc/divtc3.c
260
+ - [ ] ppc/fixtfdi.c
261
+ - [ ] ppc/fixunstfdi.c
262
+ - [ ] ppc/floatditf.c
263
+ - [ ] ppc/floatunditf.c
264
+ - [ ] ppc/gcc_qadd.c
265
+ - [ ] ppc/gcc_qdiv.c
266
+ - [ ] ppc/gcc_qmul.c
267
+ - [ ] ppc/gcc_qsub.c
268
+ - [ ] ppc/multc3.c
269
+ - [ ] ppc/restFP.S
270
+ - [ ] ppc/saveFP.S
271
+ - [ ] subdf3.c
272
+ - [ ] subsf3.c
273
+ - [ ] subtf3.c
274
+ - [ ] subvdi3.c
275
+ - [ ] subvsi3.c
276
+ - [ ] subvti3.c
277
+ - [ ] trampoline_setup.c
278
+ - [ ] truncdfhf2.c
279
+ - [ ] truncdfsf2.c
280
+ - [ ] truncsfhf2.c
281
+ - [ ] trunctfdf2.c
282
+ - [ ] trunctfsf2.c
283
+ - [ ] ucmpdi2.c
284
+ - [ ] ucmpti2.c
285
+ - [ ] udivdi3.c
286
+ - [ ] udivmoddi4.c
287
+ - [ ] udivmodsi4.c
288
+ - [ ] udivmodti4.c
289
+ - [ ] udivsi3.c
290
+ - [ ] udivti3.c
291
+ - [ ] umoddi3.c
292
+ - [ ] umodsi3.c
293
+ - [ ] umodti3.c
294
+ - [ ] x86_64/chkstk.S
295
+ - [ ] x86_64/chkstk2.S
296
+ - [ ] x86_64/floatundidf.S
297
+ - [ ] x86_64/floatundisf.S
298
+ - [x] arm/aeabi_memcmp.S
299
+ - [x] arm/aeabi_memcpy.S
300
+ - [x] arm/aeabi_memmove.S
301
+ - [x] arm/aeabi_memset.S
302
+ - [x] x86_64/floatdidf.c
303
+ - [x] x86_64/floatdisf.c
304
+ - ~~ fixunsxfdi.c~~
305
+ - ~~ fixunsxfsi.c~~
306
+ - ~~ fixunsxfti.c~~
307
+ - ~~ fixxfdi.c~~
308
+ - ~~ fixxfti.c~~
309
+ - ~~ floatdixf.c~~
310
+ - ~~ floattixf.c~~
311
+ - ~~ floatundixf.c~~
312
+ - ~~ floatuntixf.c~~
313
+ - ~~ i386/floatdixf.S~~
314
+ - ~~ i386/floatundixf.S~~
315
+ - ~~ powixf2.c~~
316
+ - ~~ x86_64/floatdixf.c~~
317
+ - ~~ x86_64/floatundixf.S~~
318
+
13
319
## License
14
320
15
321
Licensed under either of
0 commit comments