@@ -26,19 +26,14 @@ See [rust-lang/rust#35437][0].
26
26
27
27
## Progress
28
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
29
- [ ] absvdi2.c
33
30
- [ ] absvsi2.c
34
31
- [ ] absvti2.c
35
32
- [ ] adddf3.c
36
33
- [ ] addsf3.c
37
- - [ ] addtf3.c
38
34
- [ ] addvdi3.c
39
35
- [ ] addvsi3.c
40
36
- [ ] addvti3.c
41
- - [ ] apple_versioning.c
42
37
- [ ] arm/adddf3vfp.S
43
38
- [ ] arm/addsf3vfp.S
44
39
- [ ] arm/aeabi_cdcmp.S
@@ -98,27 +93,6 @@ off because Rust doesn't support them.
98
93
- [ ] arm/switch32.S
99
94
- [ ] arm/switch8.S
100
95
- [ ] 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
96
- [ ] arm/truncdfsf2vfp.S
123
97
- [ ] arm/udivmodsi4.S
124
98
- [ ] arm/udivsi3.S
@@ -129,45 +103,25 @@ off because Rust doesn't support them.
129
103
- [ ] ashlti3.c
130
104
- [ ] ashrdi3.c
131
105
- [ ] 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
106
- [ ] clzdi2.c
141
107
- [ ] clzsi2.c
142
108
- [ ] clzti2.c
143
109
- [ ] cmpdi2.c
144
110
- [ ] cmpti2.c
145
111
- [ ] comparedf2.c
146
112
- [ ] comparesf2.c
147
- - [ ] comparetf2.c
148
- - [ ] cpu_model.c
149
113
- [ ] ctzdi2.c
150
114
- [ ] ctzsi2.c
151
115
- [ ] ctzti2.c
152
- - [ ] divdc3.c
153
116
- [ ] divdf3.c
154
117
- [ ] divdi3.c
155
118
- [ ] divmoddi4.c
156
119
- [ ] divmodsi4.c
157
- - [ ] divsc3.c
158
120
- [ ] divsf3.c
159
121
- [ ] divsi3.c
160
- - [ ] divtc3.c
161
- - [ ] divtf3.c
162
122
- [ ] divti3.c
163
- - [ ] divxc3.c
164
- - [ ] emutls.c
165
- - [ ] enable_execute_stack.c
166
- - [ ] eprintf.c
167
- - [ ] extenddftf2.c
168
123
- [ ] extendhfsf2.c
169
124
- [ ] extendsfdf2.c
170
- - [ ] extendsftf2.c
171
125
- [ ] ffsdi2.c
172
126
- [ ] ffsti2.c
173
127
- [ ] fixdfdi.c
@@ -176,35 +130,24 @@ off because Rust doesn't support them.
176
130
- [ ] fixsfdi.c
177
131
- [ ] fixsfsi.c
178
132
- [ ] fixsfti.c
179
- - [ ] fixtfdi.c
180
- - [ ] fixtfsi.c
181
- - [ ] fixtfti.c
182
133
- [ ] fixunsdfdi.c
183
134
- [ ] fixunsdfsi.c
184
135
- [ ] fixunsdfti.c
185
136
- [ ] fixunssfdi.c
186
137
- [ ] fixunssfsi.c
187
138
- [ ] fixunssfti.c
188
- - [ ] fixunstfdi.c
189
- - [ ] fixunstfsi.c
190
- - [ ] fixunstfti.c
191
139
- [ ] floatdidf.c
192
140
- [ ] floatdisf.c
193
- - [ ] floatditf.c
194
141
- [ ] floatsidf.c
195
142
- [ ] floatsisf.c
196
- - [ ] floatsitf.c
197
143
- [ ] floattidf.c
198
144
- [ ] floattisf.c
199
145
- [ ] floatundidf.c
200
146
- [ ] floatundisf.c
201
- - [ ] floatunditf.c
202
147
- [ ] floatunsidf.c
203
148
- [ ] floatunsisf.c
204
- - [ ] floatunsitf.c
205
149
- [ ] floatuntidf.c
206
150
- [ ] floatuntisf.c
207
- - [ ] gcc_personality_v0.c
208
151
- [ ] i386/ashldi3.S
209
152
- [ ] i386/ashrdi3.S
210
153
- [ ] i386/chkstk.S
@@ -219,27 +162,21 @@ off because Rust doesn't support them.
219
162
- [ ] i386/muldi3.S
220
163
- [ ] i386/udivdi3.S
221
164
- [ ] i386/umoddi3.S
222
- - [ ] int_util.c
223
165
- [ ] lshrdi3.c
224
166
- [ ] lshrti3.c
225
167
- [ ] moddi3.c
226
168
- [ ] modsi3.c
227
169
- [ ] modti3.c
228
- - [ ] muldc3.c
229
170
- [ ] muldf3.c
230
171
- [ ] muldi3.c
231
172
- [ ] mulodi4.c
232
173
- [ ] mulosi4.c
233
174
- [ ] muloti4.c
234
- - [ ] mulsc3.c
235
175
- [ ] mulsf3.c
236
- - [ ] multc3.c
237
- - [ ] multf3.c
238
176
- [ ] multi3.c
239
177
- [ ] mulvdi3.c
240
178
- [ ] mulvsi3.c
241
179
- [ ] mulvti3.c
242
- - [ ] mulxc3.c
243
180
- [ ] negdf2.c
244
181
- [ ] negdi2.c
245
182
- [ ] negsf2.c
@@ -255,31 +192,20 @@ off because Rust doesn't support them.
255
192
- [ ] popcountti2.c
256
193
- [ ] powidf2.c
257
194
- [ ] 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
195
- [ ] ppc/gcc_qadd.c
265
196
- [ ] ppc/gcc_qdiv.c
266
197
- [ ] ppc/gcc_qmul.c
267
198
- [ ] ppc/gcc_qsub.c
268
- - [ ] ppc/multc3.c
269
199
- [ ] ppc/restFP.S
270
200
- [ ] ppc/saveFP.S
271
201
- [ ] subdf3.c
272
202
- [ ] subsf3.c
273
- - [ ] subtf3.c
274
203
- [ ] subvdi3.c
275
204
- [ ] subvsi3.c
276
205
- [ ] subvti3.c
277
- - [ ] trampoline_setup.c
278
206
- [ ] truncdfhf2.c
279
207
- [ ] truncdfsf2.c
280
208
- [ ] truncsfhf2.c
281
- - [ ] trunctfdf2.c
282
- - [ ] trunctfsf2.c
283
209
- [ ] ucmpdi2.c
284
210
- [ ] ucmpti2.c
285
211
- [ ] udivdi3.c
@@ -301,21 +227,101 @@ off because Rust doesn't support them.
301
227
- [x] arm/aeabi_memset.S
302
228
- [x] x86_64/floatdidf.c
303
229
- [x] x86_64/floatdisf.c
230
+
231
+ ## Unimplemented functions
232
+
233
+ These builtins involve floating-point types ("` f128 ` ", "` f80 ` " and complex numbers) that are not supported by Rust.
234
+
235
+ - ~~ addtf3.c~~
236
+ - ~~ comparetf2.c~~
237
+ - ~~ divdc3.c~~
238
+ - ~~ divsc3.c~~
239
+ - ~~ divtc3.c~~
240
+ - ~~ divtf3.c~~
241
+ - ~~ divxc3.c~~
242
+ - ~~ extenddftf2.c~~
243
+ - ~~ extendsftf2.c~~
244
+ - ~~ fixtfdi.c~~
245
+ - ~~ fixtfsi.c~~
246
+ - ~~ fixtfti.c~~
247
+ - ~~ fixunstfdi.c~~
248
+ - ~~ fixunstfsi.c~~
249
+ - ~~ fixunstfti.c~~
304
250
- ~~ fixunsxfdi.c~~
305
251
- ~~ fixunsxfsi.c~~
306
252
- ~~ fixunsxfti.c~~
307
253
- ~~ fixxfdi.c~~
308
254
- ~~ fixxfti.c~~
255
+ - ~~ floatditf.c~~
309
256
- ~~ floatdixf.c~~
257
+ - ~~ floatsitf.c~~
310
258
- ~~ floattixf.c~~
259
+ - ~~ floatunditf.c~~
311
260
- ~~ floatundixf.c~~
261
+ - ~~ floatunsitf.c~~
312
262
- ~~ floatuntixf.c~~
313
263
- ~~ i386/floatdixf.S~~
314
264
- ~~ i386/floatundixf.S~~
265
+ - ~~ muldc3.c~~
266
+ - ~~ mulsc3.c~~
267
+ - ~~ multc3.c~~
268
+ - ~~ multf3.c~~
269
+ - ~~ mulxc3.c~~
270
+ - ~~ powitf2.c~~
315
271
- ~~ powixf2.c~~
272
+ - ~~ ppc/divtc3.c~~
273
+ - ~~ ppc/fixtfdi.c~~
274
+ - ~~ ppc/fixunstfdi.c~~
275
+ - ~~ ppc/floatditf.c~~
276
+ - ~~ ppc/floatunditf.c~~
277
+ - ~~ ppc/multc3.c~~
278
+ - ~~ subtf3.c~~
279
+ - ~~ trunctfdf2.c~~
280
+ - ~~ trunctfsf2.c~~
316
281
- ~~ x86_64/floatdixf.c~~
317
282
- ~~ x86_64/floatundixf.S~~
318
283
284
+ Rust only exposes atomic types on platforms that support them, and therefore does not need to fall back to software implementations.
285
+
286
+ - ~~ arm/sync_fetch_and_add_4.S~~
287
+ - ~~ arm/sync_fetch_and_add_8.S~~
288
+ - ~~ arm/sync_fetch_and_and_4.S~~
289
+ - ~~ arm/sync_fetch_and_and_8.S~~
290
+ - ~~ arm/sync_fetch_and_max_4.S~~
291
+ - ~~ arm/sync_fetch_and_max_8.S~~
292
+ - ~~ arm/sync_fetch_and_min_4.S~~
293
+ - ~~ arm/sync_fetch_and_min_8.S~~
294
+ - ~~ arm/sync_fetch_and_nand_4.S~~
295
+ - ~~ arm/sync_fetch_and_nand_8.S~~
296
+ - ~~ arm/sync_fetch_and_or_4.S~~
297
+ - ~~ arm/sync_fetch_and_or_8.S~~
298
+ - ~~ arm/sync_fetch_and_sub_4.S~~
299
+ - ~~ arm/sync_fetch_and_sub_8.S~~
300
+ - ~~ arm/sync_fetch_and_umax_4.S~~
301
+ - ~~ arm/sync_fetch_and_umax_8.S~~
302
+ - ~~ arm/sync_fetch_and_umin_4.S~~
303
+ - ~~ arm/sync_fetch_and_umin_8.S~~
304
+ - ~~ arm/sync_fetch_and_xor_4.S~~
305
+ - ~~ arm/sync_fetch_and_xor_8.S~~
306
+ - ~~ arm/sync_synchronize.S~~
307
+ - ~~ atomic.c~~
308
+ - ~~ atomic_flag_clear.c~~
309
+ - ~~ atomic_flag_clear_explicit.c~~
310
+ - ~~ atomic_flag_test_and_set.c~~
311
+ - ~~ atomic_flag_test_and_set_explicit.c~~
312
+ - ~~ atomic_signal_fence.c~~
313
+ - ~~ atomic_thread_fence.c~~
314
+
315
+ Miscellaneous functionality that is not used by Rust.
316
+
317
+ - ~~ apple_versioning.c~~
318
+ - ~~ clear_cache.c~~
319
+ - ~~ emutls.c~~
320
+ - ~~ enable_execute_stack.c~~
321
+ - ~~ eprintf.c~~
322
+ - ~~ gcc_personality_v0.c~~
323
+ - ~~ trampoline_setup.c~~
324
+
319
325
## License
320
326
321
327
Licensed under either of
0 commit comments