Scott McMurray
51a0396d2a
Make them all pub
2017-11-25 05:53:53 -08:00
Scott McMurray
a35d63583f
Tweak addo & subo to try and fix MIPS
2017-11-25 05:26:24 -08:00
Scott McMurray
ff97668431
Implement all the 128-bit operator lang items from rust PR 46093
2017-11-25 04:21:05 -08:00
Dan Gohman
3bd28c8b6d
Add "volatile" and "memory" clobber to asm! that doesn't fall through.
...
Use the "volatile" option and the "memory" clobber on inline asm that does
things like return directly, to reduce the chances of compilers rearranging
the code.
2017-11-15 12:49:10 -08:00
Oliver Geller
99ea83e095
Implement divsf3 and divdf3
2017-11-13 20:22:27 -05:00
Oliver Geller
5923e278c3
Implement mulsf3 and muldf3
2017-11-08 17:36:34 -05:00
Alex Crichton
4fc3de624a
Prepare this crate for more wasm32 compatibility
...
This commit prepares the build script for a wasm32 target that doesn't use
Emcripten, notably forcing the `mem` feature to get activated and forcibly
ignoring the `c` feature, even if activated, for the wasm32 target.
2017-11-01 19:29:41 -07:00
Amanieu d'Antras
c95fefa9f6
Add atomic support for pre-ARMv6 on Linux
2017-10-05 12:44:12 +01:00
est31
c582a5c118
Partially revert a272d753f5c75ab9acb7b282765a3c7517caac25
...
This partially reverts commit "Convert float_to_int! into a function"
2017-09-29 02:20:27 +02:00
est31
aef124cc75
Partially revert 482d98318fc1bfd003942c9de4ee1c7e8a0c45f0
...
This partially reverts "Convert int_to_float! to a function".
2017-09-29 02:19:40 +02:00
Matt Ickstadt
81fe6a9654
Don't compile probestack functions during testing
2017-09-15 18:13:06 -05:00
Matt Ickstadt
1f98921e44
Implement x86 chkstk in "rust"
2017-09-15 18:04:59 -05:00
est31
5ce08df93e
Remove duplication by adding a macro
2017-09-14 17:39:25 +02:00
est31
f2794913f3
Convert add! to a function
2017-09-14 17:33:44 +02:00
est31
13477e488f
Convert int_to_float! to a function
2017-09-14 16:32:50 +02:00
est31
f1bab6229d
Convert float_to_int! into a function
2017-09-14 14:59:32 +02:00
est31
6f19051513
Don't use the Wrapping wrapper in float addition
...
Inspired by a patch by mattico.
2017-09-14 02:08:28 +02:00
est31
57a3b2fe48
Don't use a macro for pow calculation
2017-09-14 01:59:02 +02:00
est31
3b5d6d7aa9
Extend the Float trait by some constants and supertraits
2017-09-14 01:57:52 +02:00
est31
515ea7157a
Use the newly added ONE constant in float addition
2017-09-14 00:10:16 +02:00
est31
cec214f0d7
Introduce a float_impl! macro to avoid duplication
2017-09-13 22:44:56 +02:00
est31
218eafcc68
Refactor float builtins to use associated consts
2017-09-13 22:09:52 +02:00
est31
985e578acd
Refactor int builtins to use associated consts
2017-09-13 22:09:31 +02:00
Tim Neumann
e377364051
Avoid memcpy references in unoptimized code
2017-07-22 23:10:30 +02:00
Oliver Middleton
45a7693962
Don't include custom chkstk on MSVC
...
MSVC includes its own __chkstk so these aren't used.
2017-07-12 22:40:49 +01:00
Alex Crichton
2fa53c4b67
Don't mangle probes all the time
2017-07-07 20:35:14 -07:00
Alex Crichton
f4e92e379c
Tweak definition of probestack functions
...
It looks like the old `__rust_probestack` routine is incompatible with newer
linux kernels. My best guess for this is that the kernel's auto-growth logic is
failing to trigger, causing what looks like a legitimate segfault to get
delivered. My best guess for why *that's* happening is that the faulting address
is below `%rsp`, whereas previously all faulting stack addresses were above
`%rsp`. The probestack routine does not modify `%rsp` as it's probing the stack,
and presumably newer kernels are interpreting this as a legitimate violation.
This commit tweaks the probestack routine to instead update `%rsp` incrementally
as probing happens. The ABI of the function, however, requires that `%rsp`
isn't changed as part of the function so it's restored at the end to the
previous value.
2017-07-07 10:16:03 -07:00
Alex Crichton
f771aac37a
Add __rust_probestack intrinsic
...
Will be required for rust-lang/rust#42816
2017-07-06 06:58:32 -07:00
Alex Crichton
79b55c48ca
Fix unused imports on iOS
2017-07-03 19:11:34 -07:00
Alex Crichton
e48cd1180b
Use the Rust implementation of udivsi3 on ARM
...
Although compiler-rt presumably has a more optimized implementation written in
assembly, it appears buggy for whatever reason, causing #173 .
For now let's see if integration into rust-lang/rust will work with the
Rust-defined implementation!
2017-07-03 09:48:11 -07:00
Jorge Aparicio
b9d6291682
no aeabi_mem* symbols on iOS, weak symbols on thumb, normal symbols elsewhere
2017-06-30 18:06:25 -05:00
Jorge Aparicio
f096e02f63
optimize 32-bit aligned mem{cpy,clr,set} intrinsics for ARM
...
this reduces the execution time of all these routines by 40-70%
2017-06-29 22:40:58 -05:00
Alex Crichton
6792390e3e
Enable the intrinsics program on thumb
2017-06-25 10:09:50 -07:00
Alex Crichton
0e404583e8
Address review comments
2017-06-24 21:51:34 -07:00
Alex Crichton
f9db3c5b32
Don't test mangled names on thumb
...
We are both the "real compiler-rt" and the "to be tested one".
2017-06-24 12:54:35 -07:00
Alex Crichton
e7008c8609
Don't check for references to panics with debug assertions
2017-06-24 11:44:50 -07:00
Alex Crichton
3eff54a4ee
Don't generate unmangled aeabi with gen-tests
...
The symbols they delgate to also don't exist...
2017-06-24 11:34:10 -07:00
Alex Crichton
90dab55cb0
Don't try to work with cargo test
2017-06-24 10:22:49 -07:00
Alex Crichton
cec593c2aa
Tweak testing and such:
...
* Don't run `intrinsics` tests on thumb
* Disable `compiler_builtins` attribute on `feature = "gen-tests"`
* Disable mangling on `feature = "gen-tests"` instead of `cfg(test)`
2017-06-24 10:10:04 -07:00
Alex Crichton
c785055bd9
Remove usage of unwrap_or_else
2017-06-23 21:31:54 -07:00
Alex Crichton
d5279752b0
Don't derive Debug for Sign
2017-06-23 21:11:31 -07:00
Alex Crichton
d3e78c5f6f
Don't compile assembly on x86_64 Windows
...
They've all got the wrong ABI...
2017-06-23 21:09:24 -07:00
Alex Crichton
e8efe11f71
Shore up docs in the macros module
2017-06-23 16:28:50 -07:00
Alex Crichton
6db18f6536
Handle aeabi aliasing
...
Objects in compiler-rt may have two symbols, so this makes sure that we don't
bring in those objects by accident by defining the aliases ourselves.
2017-06-23 15:55:11 -07:00
Alex Crichton
78b290b61c
Deal with floatdidf on x86_64
...
Apparently LLVM will lower this down to just an instruction
2017-06-23 13:28:24 -07:00
Alex Crichton
f091d05904
Tweak usage of C shims on MSVC
2017-06-23 12:03:33 -07:00
Alex Crichton
4dbe3aaf2d
Use nm to weed out panics
2017-06-23 11:52:22 -07:00
Alex Crichton
11d3cffd30
Remove unused rust file
2017-06-23 11:21:36 -07:00
Alex Crichton
0e5562c38d
Remove executable bit on arm.rs
2017-06-23 11:21:15 -07:00
Alex Crichton
bf2f5b5808
Convert float intrinsics to the intrinsics! macro
2017-06-23 11:05:25 -07:00