Commit Graph

182 Commits

Author SHA1 Message Date
bjorn3
e704eb5259 Sync discriminant getter and setter with upstream
Fixes #683
2019-08-26 11:03:06 +02:00
bjorn3
1f90b04cd6 Fix float -> u/i128 cast
The original test casts were optimized away by rustc,
so cg_clif never saw them.

cc #668
2019-08-21 14:35:48 +02:00
bjorn3
b2d6705fe2 Implement u/i128 <-> float casts
Fixes #668
2019-08-21 14:01:29 +02:00
bjorn3
3fcd54088c Implement saturating_{add,sub} intrinsics 2019-08-20 10:40:08 +02:00
bjorn3
f99d31dbfe Implement pow{f32,f64} intrinsics 2019-08-19 17:16:21 +02:00
bjorn3
edbb5730ea Implement copysign{f32,f64} intrinsics 2019-08-19 16:27:09 +02:00
bjorn3
ce860e5fde Fix cross crate static duplicate codegen 2019-08-19 16:26:20 +02:00
bjorn3
f61b36a396 Don't run a alignment assertion on macOS 2019-08-18 15:30:06 +02:00
bjorn3
2558bf2f6b Workaround for missing #[rustc_args_required_const(..)] support
cc #666
2019-08-16 16:04:50 +02:00
bjorn3
9505d60a24 Cast rhs to lhs type for shl and shr 2019-08-14 15:18:05 +02:00
bjorn3
f93cd924ec Implement float -> small int cast
Also workaround small signed int eq/ne binop clif bug
2019-08-12 17:25:16 +02:00
bjorn3
f5b0a68fbf Fix some warnings 2019-08-12 16:00:10 +02:00
bjorn3
314141392a Implement log2{f32,f64} intrinsics 2019-08-12 15:54:24 +02:00
bjorn3
3000a3f63d [WIP] Implement dylib loading for the JIT 2019-08-10 16:50:23 +02:00
bjorn3
7602a46bb9 Implement simd_extract 2019-08-05 16:28:27 +02:00
bjorn3
c4af588f72 Correctly align all allocs
Fixes #348
2019-08-01 11:49:03 +02:00
bjorn3
2f0093b8c2 Test mutex locking 2019-08-01 11:15:40 +02:00
bjorn3
b806070a88 Fix simd_cast 2019-07-31 09:46:05 +02:00
bjorn3
69526d464f Implement some float simd intrinsics 2019-07-30 14:37:20 +02:00
bjorn3
ee4927e069 Fix _mm_movemask_epi8
The order of iteration was wrong
2019-07-29 18:59:17 +02:00
bjorn3
49b21f2730 Fix returning (u128, u128) 2019-07-29 13:18:21 +02:00
bjorn3
63646b1956 Implement llvm.x86.avx2.pmovmskb llvm intrinsic 2019-07-29 12:50:20 +02:00
bjorn3
9cb787fe70 Implement and test simd_shuffle* 2019-07-29 11:23:53 +02:00
bjorn3
76b89476c3 [WIP] simd_shuffle* 2019-07-29 11:03:55 +02:00
bjorn3
90f2b12d47 Fix simd comparison 2019-07-29 11:03:55 +02:00
bjorn3
7fdd058c60 Emulate some simd intrinsics 2019-07-29 11:03:55 +02:00
bjorn3
3f76607880 Rustup to rustc 1.38.0-nightly (4560cb830 2019-07-28) 2019-07-29 10:32:24 +02:00
bjorn3
dbf94c5697 Rustup to rustc 1.38.0-nightly (c798dffac 2019-07-27) 2019-07-28 09:24:16 +02:00
bjorn3
436a24a85d Implement many more float intrinsics 2019-07-27 16:52:00 +02:00
bjorn3
ffa34ae328 Remove unnecessary changes 2019-07-26 11:45:01 +02:00
bjorn3
0a833ba8a1 [WIP] 2019-07-26 11:32:04 +02:00
bjorn3
b46c8bfb7e Use std checked_div 2019-07-26 11:32:04 +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
65e337cdf3 Implement 128bit multiply with overflow 2019-07-26 11:29:35 +02:00
bjorn3
834a3bf49c [WIP] 2019-07-26 11:29:35 +02:00
bjorn3
641a210ff6 Implement most 128bit binops 2019-07-26 11:29:35 +02:00
bjorn3
45de0336a5 Fix some more stuff 2019-07-26 11:28:28 +02:00
bjorn3
c814ee0d2a [WIP] 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
b82472184d Rustup to rustc 1.38.0-nightly (dfd52ba6a 2019-07-06) 2019-07-07 11:59:11 +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
d7274ac5fd Fix load and store for ByValPair values with differently sized components 2019-06-23 15:23:06 +02:00
bjorn3
aeecb45beb Preserve the order files are added to archives
rust.metadata.bin could have been at the start of an .rlib file confusing ld
2019-04-27 17:47:15 +02:00
bjorn3
970d164089 Fix and optimize init intrinsic 2019-04-10 17:25:57 +02:00
bjorn3
0df3b41630 Skip ZST arguments
Fixes #413 and increases compatibility with cg_llvm
2019-03-26 19:53:04 +01:00
bjorn3
a715c79263 Rustup to rustc 1.35.0-nightly (82e2f3ec2 2019-03-20) 2019-03-21 20:24:46 +01:00
bjorn3
d9403bf3fd Implement weak linkage for statics 2019-03-11 20:36:29 +01:00
bjorn3
2ce5387b7c Rename load_value_pair to load_scalar_pair and fix dynamic dispatch with arbitrary self types 2019-03-03 12:19:55 +01:00
bjorn3
89666d9818 Implement CastKind::ClosureFnPointer 2019-03-02 20:25:08 +01:00
bjorn3
25f3ef5ff9 Implement ProjectionElem::Subslice 2019-03-02 20:11:31 +01:00
bjorn3
3d81b76566 Rustup to rustc 1.34.0-nightly (350674b71 2019-02-28) 2019-03-01 18:55:20 +01:00
bjorn3
f54a2cc2e4 Update cranelift and add a test for bitreverse
Fixes #168 using CraneStation/cranelift#683
2019-02-23 10:41:34 +01:00
bjorn3
b4eff78a9e Pass command-line arguments to JITed function
Cherry-picked from f1f35405e15ca1b77425514b04b96b2749231899 by
@milkey-mouse
2019-02-18 18:53:18 +01:00
bjorn3
bab8113954 Fix discriminant_value intrinsic
Fixes #349
2019-02-16 17:18:51 +01:00
bjorn3
de94b62ba4 Fix atomic_xchg* intrinsics 2019-02-16 16:24:03 +01:00
bjorn3
26289edf1a Fix cttz{,_nonzero} intrinsics 2019-02-16 15:42:20 +01:00
bjorn3
5721542164 Fix BinOp::Offset
fixes #341
2019-02-16 14:02:15 +01:00
bjorn3
130fbe2574
*const char -> *const i8 2019-02-12 08:24:32 +01:00
bjorn3
223611dcb2 Fix and enable libstd building 2019-02-11 19:40:07 +01:00
bjorn3
c68e76c33b Implement variadic function calling 2019-02-11 19:18:52 +01:00
bjorn3
91385ba0fc Cleanup config.sh 2019-02-11 15:42:28 +01:00
bjorn3
1eba7e5f5e Implement drop for trait objects 2019-02-08 17:20:24 +01:00
bjorn3
43f4dc6220 Fix some warnings 2019-02-06 18:49:59 +01:00
bjorn3
33bdb7e919 Use mini_core::panic with jit 2019-01-26 15:16:58 +01:00
bjorn3
4eb0c0787a Print a message when panicking from mini_core 2019-01-26 15:14:39 +01:00
bjorn3
4bca86c236 Use malloc in mini_core::allocate 2019-01-26 15:11:33 +01:00
bjorn3
09c4569c87 Implement line debuginfo 2019-01-26 11:59:57 +01:00
bjorn3
16e43c9d21 Fix unsize coercions and the size_of_val and min_align_of_val intrinsics for custom dst's 2018-12-29 15:36:17 +01:00
bjorn3
7ea7d021ca Rustup to rustc 1.33.0-nightly (ddab10a69 2018-12-23) 2018-12-24 14:50:18 +01:00
bjorn3
0b4ede39e5 Add pretty param and local info comments to clif 2018-12-22 18:21:30 +01:00
bjorn3
16334be18e Remove a workaround for icmp.i8/i16 not having an encoding 2018-11-17 15:02:57 +01:00
bjorn3
d20f54bb1a Add some benchmarks 2018-11-05 18:42:43 +01:00
bjorn3
4f7f65ce55 Rustup to rustc 1.32.0-nightly (04fdb44f5 2018-11-03) 2018-11-04 15:29:01 +01:00
bjorn3
f4e544894a Implement Rvalue::Len for arrays 2018-10-06 13:50:31 +02:00
bjorn3
ab57af4e6a Fix projection of sized field in unsized type 2018-10-06 11:21:18 +02:00
bjorn3
69fe4d6f92 Workaround some missing encodings in cranelift 2018-09-30 16:33:55 +02:00
bjorn3
b11cb572dc Use cranelift_frontend::Switch for switchInt 2018-09-25 18:04:30 +02:00
bjorn3
f127042639 Rename examples directory to example to prevent rls trying to compile its content 2018-09-22 12:15:56 +02:00