1338 Commits

Author SHA1 Message Date
bjorn3
1a26891170 Replace llvm intrinsics with runtime trap 2019-07-29 11:03:55 +02:00
bjorn3
90f2b12d47 Fix simd comparison 2019-07-29 11:03:55 +02:00
bjorn3
9e3f2391b8 Emulate compare simd intrinsics 2019-07-29 11:03:55 +02:00
bjorn3
7fdd058c60 Emulate some simd intrinsics 2019-07-29 11:03:55 +02:00
bjorn3
436a24a85d Implement many more float intrinsics 2019-07-27 16:52:00 +02:00
bjorn3
bdf23c0201 Don't set opt_level to best
LICM is still broken
2019-07-27 16:12:48 +02:00
bjorn3
c7fa94bf00 Fix checked binops when overflow checks are disabled 2019-07-27 16:12:46 +02:00
bjorn3
fe20f8cba6 Rustup to rustc 1.38.0-nightly (c43753f91 2019-07-26) 2019-07-27 11:35:46 +02:00
bjorn3
0a833ba8a1 [WIP] 2019-07-26 11:32:04 +02:00
bjorn3
718a5a2e3f Display span in Assert panic message 2019-07-26 11:32:04 +02:00
bjorn3
81fa33da3d Fix arg header comments 2019-07-26 11:30:39 +02:00
bjorn3
7f5c2dab9d Remove some unnecessary changes 2019-07-26 11:30:39 +02:00
bjorn3
5180becc7c Fix 128bit CValue::const_val 2019-07-26 11:30:39 +02:00
bjorn3
63b82238bb Implement 128bit checked add and sub 2019-07-26 11:30:39 +02:00
bjorn3
4d35be684d Implement 128bit comparison binops 2019-07-26 11:29:35 +02:00
bjorn3
65e337cdf3 Implement 128bit multiply with overflow 2019-07-26 11:29:35 +02:00
bjorn3
88ad25f45e Implement 128bit shl and shr binops 2019-07-26 11:29:35 +02:00
bjorn3
8693728327 Respect sess.overflow_checks() 2019-07-26 11:29:35 +02:00
bjorn3
641a210ff6 Implement most 128bit binops 2019-07-26 11:29:35 +02:00
bjorn3
3080c73f50 Remove unnecessary if statement 2019-07-26 11:28:28 +02:00
bjorn3
8b3628028e Don't special case u/i128 for UnOp::not 2019-07-26 11:28:28 +02:00
bjorn3
d8cae099d0 Fix it 2019-07-26 11:28:28 +02:00
bjorn3
45de0336a5 Fix some more stuff 2019-07-26 11:28:28 +02:00
bjorn3
79f4c3d002 [WIP] 2019-07-26 11:28:04 +02:00
bjorn3
c814ee0d2a [WIP] 2019-07-26 11:28:04 +02:00
bjorn3
596fdd5a64 Fix type in load_scalar 2019-07-26 11:28:04 +02:00
bjorn3
d629d97f25 Fix some things 2019-07-26 11:28:04 +02:00
bjorn3
de32ddad23 [WIP] Basic i128 support 2019-07-26 11:28:04 +02:00
bjorn3
bf3ec3be3e Implement checked binops 2019-07-26 11:19:14 +02:00
bjorn3
92f2b6243d Rustup to rustc 1.38.0-nightly (a7f28678b 2019-07-23) 2019-07-24 11:56:24 +02:00
bjorn3
8c2577c747 Don't disable stdsimd anymore
This doesn't enable simd support. Actually using the functions will
result in a compilation error.
2019-07-20 15:33:57 +02:00
bjorn3
94effb972f Rustup to rustc 1.38.0-nightly (e3cebcb3b 2019-07-19) 2019-07-20 13:04:02 +02:00
bjorn3
02eeaad10a Rustup to rustc 1.38.0-nightly (71f9384e3 2019-07-12) 2019-07-13 11:07:07 +02:00
bjorn3
d0db8f0cac
Rustup 2019-07-08 09:54:18 +02:00
bjorn3
b82472184d Rustup to rustc 1.38.0-nightly (dfd52ba6a 2019-07-06) 2019-07-07 11:59:11 +02:00
bjorn3
c2e6822342 Rustup to rustc 1.37.0-nightly (0beb2ba16 2019-07-02)
Also removes some unnecessary errors.
2019-07-03 16:49:47 +02:00
bjorn3
4e1d219f06 Implement some float intrinsics 2019-06-26 16:06:12 +02:00
bjorn3
db5ffdedf7 Implement bswap intrinsic 2019-06-23 17:32:32 +02:00
bjorn3
d425116bdc Implement some intrinsics 2019-06-23 16:36:14 +02:00
bjorn3
d7274ac5fd Fix load and store for ByValPair values with differently sized components 2019-06-23 15:23:06 +02:00
bjorn3
dd15051f5a Rustup to rustc 1.37.0-nightly (de02101e6 2019-06-22) 2019-06-23 10:47:16 +02:00
bjorn3
2b61f90c71 Fix returning non ZST uninhabited types 2019-06-16 18:03:38 +02:00
bjorn3
01e9303857 Fix SetDiscriminant for generators 2019-06-16 18:01:46 +02:00
bjorn3
bd73128d2e Implement lt, le, ge and gt for fat pointers 2019-06-16 17:59:31 +02:00
bjorn3
c0779d5d1d Add comments for trap::codegen_print gv and fn defs 2019-06-16 17:40:46 +02:00
bjorn3
2eae6bc879 Make a link less prone to breaking 2019-06-16 17:28:29 +02:00
bjorn3
76a178098d Refactor drop codegen 2019-06-16 15:57:53 +02:00
bjorn3
f8c5e10f26 Fix compiling in release mode 2019-06-16 14:47:01 +02:00
bjorn3
3f15b0a24b Implement scalar pair abi pass mode 2019-06-16 12:54:37 +02:00
bjorn3
65bc1e5b5b Fix write_cvalue for ByValPair when the cvalue is not trivially a pair
`write_cvalue` didn't work for `Box<[u8]>`, because the inner fat ptr
was wrapped inside a newtype, which meant `Box<[u8]>` itself only had
one field.

This also simplifies `CValue::force_stack` by reusing `write_cvalue`
when it is not already on the stack.
2019-06-16 12:51:16 +02:00