Oliver Geller
8bb30026c7
Implement divsf3 and divdf3
2017-11-13 20:22:27 -05:00
Oliver Geller
897048543f
Implement mulsf3 and muldf3
2017-11-08 17:36:34 -05:00
Alex Crichton
45cd956acc
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
73e38dcf2f
Add atomic support for pre-ARMv6 on Linux
2017-10-05 12:44:12 +01:00
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