Skip to content

i128 and u128 support #38482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
Dec 31, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
b0e55a8
Such large. Very 128. Much bits.
nagisa Aug 23, 2016
b526064
Tests for the 128 bit integers
nagisa Aug 23, 2016
d4d5be1
Feature gate the 128 bit types
nagisa Aug 23, 2016
4e2b946
Cleanup FIXMEs
nagisa Aug 23, 2016
64de4e2
Fix LEB128 to work with the stage1
nagisa Aug 24, 2016
64fbce6
Tidy
nagisa Aug 24, 2016
ec1fdfe
Makefiles support for rustc_i128 crate
nagisa Aug 24, 2016
d9eb756
Wrapping<i128> and attempt at LLVM 3.7 compat
nagisa Aug 24, 2016
db2527a
Fix parse-fail and compile-fail tests
nagisa Aug 24, 2016
508fef5
impl Step for iu128
nagisa Aug 24, 2016
9aad2d5
Add a way to retrieve constant value in 128 bits
nagisa Aug 25, 2016
4ff620e
Implement emit_iu128 for json serialiser
nagisa Aug 27, 2016
bfa53cf
Fix i128 alignment calculation
nagisa Sep 27, 2016
7a3704c
Fix rebase fallout
nagisa Sep 27, 2016
5fd5d52
WIP intrinsics
nagisa Oct 2, 2016
32d8d24
Fix rebase fallout
est31 Nov 20, 2016
8bcb021
Use LLVMRustConstInt128Get on stage1 too
est31 Nov 20, 2016
9e99213
Compilation fixes
est31 Nov 20, 2016
85ec091
Make rustdoc aware of the primitive i128 type
est31 Nov 21, 2016
dc14a10
Fix intrinsics and expand tests
est31 Nov 24, 2016
2715367
intrinsics : uabs and iabs
est31 Nov 25, 2016
13d49f5
Fix warning on 64 bit
est31 Nov 26, 2016
3b34f90
Move from RUSTC_CRATES to TARGET_CRATES
est31 Nov 27, 2016
c79aba7
40 -> 39, as ceil(log10(2^128)) == 39
est31 Nov 28, 2016
317810d
Always use Rust based intrinsics on Windows
est31 Dec 4, 2016
3e20462
Try to fix some things
est31 Dec 5, 2016
92e6c53
libcompiler_builtins: don't codegen dead code call to eh_personality
est31 Dec 7, 2016
3be141f
Remove unimplemented() function
est31 Dec 7, 2016
53ff50a
Port to wrapping_* and unchecked_* operations
est31 Dec 8, 2016
ca73aff
Tidy
est31 Dec 8, 2016
92163f1
Windows x64 ABI requires i128 params to be passed as reference
est31 Dec 10, 2016
d71223a
intrinsics: try to return everything via {u,i}128ret to match LLVM
est31 Dec 12, 2016
c3e3bc0
Fix another windows ABI mistake
est31 Dec 14, 2016
01dcb7f
Tidy
est31 Dec 14, 2016
8cbe725
Fix rebase fallout
est31 Dec 14, 2016
dd10c5a
Feature gate: 1.16.0 instead of 1.15.0
est31 Dec 15, 2016
0a481fe
Fix rebase fallout and compilation fixes
est31 Dec 16, 2016
208c8f5
Fix sign-extension in stage1 compiler
nagisa Dec 17, 2016
e0e5377
Fix a return type
nagisa Dec 21, 2016
5a853b0
The windows special-cases only apply to x64
nagisa Dec 21, 2016
9842d27
Fix build
est31 Dec 21, 2016
ee6256b
More windows fixes
est31 Dec 22, 2016
86ce3a2
Further and hopefully final Windows fixes
nagisa Dec 23, 2016
d166ee9
Add test to ensure unadjusted stays unstable
est31 Dec 26, 2016
6b35963
Fix warning when compiling on 64 bit Linux
est31 Dec 26, 2016
ee69cd7
Calculate discriminant bounds within 64 bits
nagisa Dec 31, 2016
29e01af
Fix iabs and add some more tests
est31 Dec 31, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 15 additions & 10 deletions mk/crates.mk
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ TARGET_CRATES := libc std term \
compiler_builtins core alloc \
std_unicode rustc_bitflags \
alloc_system alloc_jemalloc \
panic_abort panic_unwind unwind
panic_abort panic_unwind unwind rustc_i128
RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_driver \
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
rustc_data_structures rustc_platform_intrinsics rustc_errors \
Expand Down Expand Up @@ -92,23 +92,26 @@ DEPS_getopts := std
DEPS_graphviz := std
DEPS_log := std
DEPS_num := std
DEPS_serialize := std log
DEPS_serialize := std log rustc_i128
DEPS_term := std
DEPS_test := std getopts term native:rust_test_helpers
DEPS_rustc_i128 = std

DEPS_syntax := std term serialize log arena libc rustc_bitflags std_unicode rustc_errors syntax_pos rustc_data_structures
DEPS_syntax := std term serialize log arena libc rustc_bitflags std_unicode rustc_errors \
syntax_pos rustc_data_structures rustc_i128
DEPS_syntax_ext := syntax syntax_pos rustc_errors fmt_macros proc_macro
DEPS_proc_macro := syntax syntax_pos rustc_plugin log
DEPS_syntax_pos := serialize
DEPS_proc_macro_tokens := syntax syntax_pos log
DEPS_proc_macro_plugin := syntax syntax_pos rustc_plugin log proc_macro_tokens

DEPS_rustc_const_math := std syntax log serialize
DEPS_rustc_const_math := std syntax log serialize rustc_i128
DEPS_rustc_const_eval := rustc_const_math rustc syntax log serialize \
rustc_back graphviz syntax_pos
rustc_back graphviz syntax_pos rustc_i128

DEPS_rustc := syntax fmt_macros flate arena serialize getopts \
log graphviz rustc_llvm rustc_back rustc_data_structures\
rustc_const_math syntax_pos rustc_errors
rustc_const_math syntax_pos rustc_errors rustc_i128
DEPS_rustc_back := std syntax flate log libc
DEPS_rustc_borrowck := rustc log graphviz syntax syntax_pos rustc_errors rustc_mir
DEPS_rustc_data_structures := std log serialize libc
Expand All @@ -119,19 +122,20 @@ DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_bo
rustc_passes rustc_save_analysis rustc_const_eval \
rustc_incremental syntax_pos rustc_errors proc_macro rustc_data_structures
DEPS_rustc_errors := log libc serialize syntax_pos
DEPS_rustc_lint := rustc log syntax syntax_pos rustc_const_eval
DEPS_rustc_lint := rustc log syntax syntax_pos rustc_const_eval rustc_i128
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
DEPS_proc_macro := std syntax
DEPS_rustc_metadata := rustc syntax syntax_pos rustc_errors rustc_const_math \
proc_macro syntax_ext
proc_macro syntax_ext rustc_i128
DEPS_rustc_passes := syntax syntax_pos rustc core rustc_const_eval rustc_errors
DEPS_rustc_mir := rustc syntax syntax_pos rustc_const_math rustc_const_eval rustc_bitflags
DEPS_rustc_mir := rustc syntax syntax_pos rustc_const_math rustc_const_eval rustc_bitflags \
rustc_i128
DEPS_rustc_resolve := arena rustc log syntax syntax_pos rustc_errors
DEPS_rustc_platform_intrinsics := std
DEPS_rustc_plugin := rustc rustc_metadata syntax syntax_pos rustc_errors
DEPS_rustc_privacy := rustc log syntax syntax_pos
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
log syntax serialize rustc_llvm rustc_platform_intrinsics \
log syntax serialize rustc_llvm rustc_platform_intrinsics rustc_i128 \
rustc_const_math rustc_const_eval rustc_incremental rustc_errors syntax_pos
DEPS_rustc_incremental := rustc syntax_pos serialize rustc_data_structures
DEPS_rustc_save_analysis := rustc log syntax syntax_pos serialize
Expand Down Expand Up @@ -159,6 +163,7 @@ ONLY_RLIB_alloc := 1
ONLY_RLIB_rand := 1
ONLY_RLIB_collections := 1
ONLY_RLIB_std_unicode := 1
ONLY_RLIB_rustc_i128 := 1
ONLY_RLIB_rustc_bitflags := 1
ONLY_RLIB_alloc_system := 1
ONLY_RLIB_alloc_jemalloc := 1
Expand Down
15 changes: 15 additions & 0 deletions src/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading