Commit Graph

162 Commits (c781759498617ed060dcd6856390d0bd59bc5226)

Author SHA1 Message Date
est31 c781759498 Partially revert a272d753f5
This partially reverts commit "Convert float_to_int! into a function"
2017-09-29 02:20:27 +02:00
est31 a20840262e Partially revert 482d98318f
This partially reverts "Convert int_to_float! to a function".
2017-09-29 02:19:40 +02:00
Matt Ickstadt a40cc6a12d Don't compile probestack functions during testing 2017-09-15 18:13:06 -05:00
Matt Ickstadt b3679bcfba Implement x86 chkstk in "rust" 2017-09-15 18:04:59 -05:00
est31 0cd476220b Remove duplication by adding a macro 2017-09-14 17:39:25 +02:00
est31 3efae7f7d9 Convert add! to a function 2017-09-14 17:33:44 +02:00
est31 482d98318f Convert int_to_float! to a function 2017-09-14 16:32:50 +02:00
est31 ff63f7b80f Convert float_to_int! into a function 2017-09-14 14:59:32 +02:00
est31 a272d753f5 Don't use the Wrapping wrapper in float addition
Inspired by a patch by mattico.
2017-09-14 02:08:28 +02:00
est31 72ed4c8bce Don't use a macro for pow calculation 2017-09-14 01:59:02 +02:00
est31 8313cec597 Extend the Float trait by some constants and supertraits 2017-09-14 01:57:52 +02:00
est31 2c1d7dccc1 Use the newly added ONE constant in float addition 2017-09-14 00:10:16 +02:00
est31 46cfa05650 Introduce a float_impl! macro to avoid duplication 2017-09-13 22:44:56 +02:00
est31 9bdedec38e Refactor float builtins to use associated consts 2017-09-13 22:09:52 +02:00
est31 c9a261895e Refactor int builtins to use associated consts 2017-09-13 22:09:31 +02:00
Tim Neumann c138713df1 Avoid memcpy references in unoptimized code 2017-07-22 23:10:30 +02:00
Oliver Middleton 064452423a 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 91eaa85902 Don't mangle probes all the time 2017-07-07 20:35:14 -07:00
Alex Crichton f9f6bd0589 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 7ccf8408d0 Add `__rust_probestack` intrinsic
Will be required for rust-lang/rust#42816
2017-07-06 06:58:32 -07:00
Alex Crichton 238647af80 Fix unused imports on iOS 2017-07-03 19:11:34 -07:00
Alex Crichton 681aaa914d 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 b8a662040e no aeabi_mem* symbols on iOS, weak symbols on thumb, normal symbols elsewhere 2017-06-30 18:06:25 -05:00
Jorge Aparicio 75c6ccca71 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 0ebbcaede4 Enable the `intrinsics` program on thumb 2017-06-25 10:09:50 -07:00
Alex Crichton afe5c717a9 Address review comments 2017-06-24 21:51:34 -07:00
Alex Crichton c193113721 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 acaa2f071a Don't check for references to panics with debug assertions 2017-06-24 11:44:50 -07:00
Alex Crichton d051480eff 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 91b1291dc5 Don't try to work with `cargo test` 2017-06-24 10:22:49 -07:00
Alex Crichton 734ec3d31c 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 2147753559 Remove usage of unwrap_or_else 2017-06-23 21:31:54 -07:00
Alex Crichton 4dac0be751 Don't derive Debug for Sign 2017-06-23 21:11:31 -07:00
Alex Crichton b42d267065 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 eabb6fab4a Shore up docs in the macros module 2017-06-23 16:28:50 -07:00
Alex Crichton 7de57cd4f9 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 a839d53a02 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 5172f8c218 Tweak usage of C shims on MSVC 2017-06-23 12:03:33 -07:00
Alex Crichton a16ebb0dcb Use `nm` to weed out panics 2017-06-23 11:52:22 -07:00
Alex Crichton 5a444d58f2 Remove unused rust file 2017-06-23 11:21:36 -07:00
Alex Crichton 7c4745061a Remove executable bit on arm.rs 2017-06-23 11:21:15 -07:00
Alex Crichton 83d63eaa9b Convert float intrinsics to the `intrinsics!` macro 2017-06-23 11:05:25 -07:00
Alex Crichton 93fed264c1 Remove executable bit from conv.rs 2017-06-23 10:44:59 -07:00
Alex Crichton 4c41b5649f Fix use_c_shim_if 2017-06-23 07:54:31 -07:00
Alex Crichton 47ff81325c Use more intrinsics on msvc 2017-06-23 07:53:34 -07:00
Alex Crichton 12a0038250 Fix the abi hack on windows 2017-06-22 23:36:50 -07:00
Alex Crichton d17042106f Port udiv to the `intrinsics!` macro 2017-06-22 23:23:36 -07:00
Alex Crichton 7886ae275b Port sdiv to traits + `intrinsics!`
Enhance `intrinsics!` along the way!
2017-06-22 23:09:28 -07:00
Alex Crichton 275d1032b5 Port mul intrinsics to traits
Also add a few features to the `intrinsics!` macro
2017-06-22 22:36:37 -07:00
Alex Crichton eeb44abacf Remove executable bit from mod.rs 2017-06-22 22:04:40 -07:00