bjorn3
a2e905f22d
Correctly align offset for dst field projections
...
Fixes #681
2019-09-02 20:09:37 +02:00
bjorn3
15b9834d7d
Don't copy ByRef passed types to local stack slot when not necessary
...
Eg when the local is immutable **and** the type is freeze.
This makes the simple raytracer runtime benchmark 1% faster than cg_llvm
without optimizations. Before it was 2% slower.
cc #691
cc #684
2019-08-30 15:42:07 +02:00
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