Commit Graph

29 Commits

Author SHA1 Message Date
bjorn3
8a6ff90a3a Use __muloti4 instead of __rust_i128_mulo
Fixes #1126
2021-07-28 14:54:31 +02:00
bjorn3
641e13e021 Replace pointer_ty() with fx.pointer_type where possible 2021-07-26 19:21:45 +02:00
bjorn3
f7cfb9d6d5 Remove shl/shr special handling for 128bit ints
Cranelift now natively supports 128bit int shifting
2021-07-17 14:34:58 +02:00
bjorn3
1122f42e28 Support cross-compiling to Windows using MinGW 2021-03-05 21:32:49 +01:00
bjorn3
5e736293b3 Rustfmt 2021-03-05 11:21:44 +01:00
bjorn3
73d3a1c14a Use dynamic dispatch for the inner Module
This improves compilation time and shrinks the linked backend from
13MB to 9.7MB on Linux.
2021-02-23 18:49:37 +01:00
bjorn3
b0f870edd6 Fix CI 2021-02-21 12:34:30 +01:00
bjorn3
9c980276d8 Directly use Cranelift instructions for 128bit int shifts 2021-02-21 12:09:13 +01:00
bjorn3
139a6d12de Fix 128bit checked math intrinsic calls 2021-01-30 11:02:24 +01:00
bjorn3
4cc6b4f9bf Fix many clippy warnings 2020-10-28 21:47:25 +01:00
bjorn3
0a5968dfd2 Use the new cranelift-module interface
This updates Cranelift to include bytecodealliance/wasmtime#2249
2020-10-08 19:00:21 +02:00
bjorn3
c8699076f9 Document almost all modules
Fixes #1082
2020-09-23 15:13:49 +02:00
CohenArthur
4e685a512e fmt: Run cargo fmt since it is available 2020-08-28 12:10:48 +02:00
bjorn3
f288959c00 Limit publicness to crate where possible and remove unused imports 2020-03-27 12:14:45 +01:00
bjorn3
e9db3e7817 Avoid u/i*::{min.max}_value()
They will be deprecated in the future
2020-03-20 16:29:05 +01:00
bjorn3
6129921529 More 128bit support
* UnOp::Neg
* ctpop
* bitreverse

Also replaces `if let Some(64u128) = ...` with `if ... = Some(u64u128)`
to be able to compile cg_clif using cg_clif, as cranelift_frontend::Switch
doesn't support i128 yet.
2019-10-06 15:51:43 +02:00
bjorn3
58a9b648e8 Update cranelift, faerie and target-lexicon 2019-10-03 18:55:01 +02:00
bjorn3
ce0be229d7 Use upstream cranelift 2019-09-08 19:18:17 +02:00
Atul Bhosale
f481a4b685
Format code using 'cargo fmt' 2019-08-31 22:58:09 +05:30
bjorn3
2a20cc0b94 Use anonymous lifetimes where possible 2019-08-18 16:52:07 +02:00
bjorn3
7c7a8e8367 Workaround for missing icmp{,_imm}.i128 legalizations
Fixes #667
2019-08-15 11:36:23 +02:00
bjorn3
b4e55cdedd Refactor num.rs 2019-08-14 15:03:52 +02:00
bjorn3
db071db95a Calculate sign in trans{,_checked}_int_binop instead of caller 2019-08-14 13:01:55 +02:00
bjorn3
581b6ea5be Misc changes 2019-08-14 11:36:24 +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
641a210ff6 Implement most 128bit binops 2019-07-26 11:29:35 +02:00