Commit graph

1471 commits

Author SHA1 Message Date
Trevor Gross
d08a0ce015
Merge pull request #698 from tgross35/skip-asm-checks-fixme
Ungate tests that were skipped due to a broken implementation
2024-09-28 18:21:52 -04:00
Trevor Gross
e226c0dce5 Ungate tests that were skipped due to a broken implementation
The upstream issue [1] has been resolved so we can enable these tests
again.

[1]: https://github.com/rust-lang/compiler-builtins/issues/616
2024-09-28 18:13:34 -04:00
Trevor Gross
ac07aeb2db
Merge pull request #697 from tgross35/f16-asm
Resolve FIXMEs related to `f16` assembly
2024-09-28 18:04:31 -04:00
Trevor Gross
4ae984cbce Resolve FIXMEs related to f16 assembly
We have a couple FIXMEs from before aarch64 `f16` assembly support
existed. We have this available now, so resolve the notes here.
2024-09-28 17:57:06 -04:00
Trevor Gross
9b9cf1b97b
Merge pull request #696 from rust-lang/release-plz-2024-09-28T15-03-56Z
chore: release v0.1.130
2024-09-28 11:19:54 -04:00
github-actions[bot]
8a13ab7dfc
chore: release 2024-09-28 15:13:17 +00:00
Trevor Gross
857c293cc1
Merge pull request #614 from tgross35/f16-f128-powi
Add `__powitf2` symbol for `f128` integer exponentiation
2024-09-28 11:12:50 -04:00
Trevor Gross
b2db9e8e89 Add a benchmark for __powitf2 2024-09-28 11:06:33 -04:00
Trevor Gross
606d971958 Add support for f128 integer exponentiation
Create the symbol `__powitf2`.
2024-09-28 11:06:33 -04:00
Trevor Gross
2a32f80cdc Move float_pow tests to their own file 2024-09-28 11:06:33 -04:00
Trevor Gross
99a9bbb1bb
Merge pull request #694 from tgross35/feature-cleanup
Remove unneeded features
2024-09-28 11:03:34 -04:00
Trevor Gross
18b42ebb78 Remove unneeded features
A few of the features that we enable have been stabilized, others may
have been needed at some point but are no longer required. Clean this
up.
2024-09-28 10:56:30 -04:00
Trevor Gross
df86dc2ad9
Merge pull request #693 from rust-lang/release-plz-2024-09-26T14-27-12Z
chore: release v0.1.129
2024-09-27 07:15:33 -04:00
github-actions[bot]
c48926906a
chore: release 2024-09-27 11:08:02 +00:00
Trevor Gross
5c103f21bf
Merge pull request #695 from rust-lang/revert-690-chore/cc
Revert "Bump cc dependency"
2024-09-27 07:07:36 -04:00
Trevor Gross
1649f72ea6
Revert "Bump cc dependency" 2024-09-27 07:00:19 -04:00
Trevor Gross
3e608c6cc0
Merge pull request #692 from Tazdevil971/master
Fixed `__divtf3` having wrong cfg for f128
2024-09-26 10:26:44 -04:00
Davide Mor
8c31ec9e7d Fixed __divtf3 having wrong cfg for f128 2024-09-26 15:25:48 +02:00
Trevor Gross
b8a2df1e2a
Merge pull request #691 from rust-lang/release-plz-2024-09-25T14-37-02Z
chore: release v0.1.128
2024-09-25 10:49:07 -04:00
github-actions[bot]
1e5bf9e166
chore: release 2024-09-25 14:37:03 +00:00
Trevor Gross
d88b175626
Merge pull request #690 from arttet/chore/cc
Bump cc dependency
2024-09-25 10:36:37 -04:00
Artyom Tetyukhin
70d74bb7a4
Bump cc dependency 2024-09-25 18:21:36 +04:00
Trevor Gross
cc3f6697e9
Merge pull request #688 from rust-lang/release-plz-2024-09-24T16-40-42Z
chore: release v0.1.127
2024-09-24 18:49:20 +02:00
github-actions[bot]
d6d29197e4
chore: release 2024-09-24 16:40:44 +00:00
Trevor Gross
608fd00051
Merge pull request #622 from tgross35/f128-div
Add `__divtf3`
2024-09-24 18:40:16 +02:00
Trevor Gross
4842bd6ab1 Add benchmarks for f128 division 2024-09-24 18:32:58 +02:00
Trevor Gross
764a177497 Add f128 division
Use the new generic division algorithm to expose `__divtf3` and
`__divkf3`.
2024-09-24 18:32:58 +02:00
Trevor Gross
4f8afbabdc Make float division generic
Float division currently has a separate `div32` and `div64` for `f32`
and `f64`, respectively. Combine these to make use of generics. This
will make it easier to support `f128` division, and reduces a lot of
redundant code.

This includes a simplification of division tests.
2024-09-24 18:32:56 +02:00
Trevor Gross
23af8ca763 Update bounds and docs for the Float trait
Add some bounds to integer types that allow our function trait bounds to
be slightly less verbose. Also clarify documentation and remove a
redundant operation.
2024-09-24 18:21:57 +02:00
Trevor Gross
44840a12bc Add Shr to u256
Float division requires some shift operations on big integers; implement
right shift here.
2024-09-24 18:21:57 +02:00
Amanieu d'Antras
cad966f041
Merge pull request #687 from rust-lang/release-plz-2024-09-11T17-09-03Z 2024-09-13 01:35:04 +01:00
github-actions[bot]
22ef22e30b
chore: release 2024-09-11 17:09:04 +00:00
Trevor Gross
bb5086fbf0
Merge pull request #686 from folkertdev/use-naked-asm
use `naked_asm!` in `#[naked]` functions
2024-09-11 19:08:18 +02:00
Folkert de Vries
1a343b6118 use naked_asm! in #[naked] functions 2024-09-11 12:01:15 +02:00
Trevor Gross
9acaa28d7d
Merge pull request #684 from rust-lang/release-plz-2024-09-04T02-56-14Z
chore: release v0.1.125
2024-09-05 12:21:58 -04:00
github-actions[bot]
0711291229
chore: release 2024-09-05 16:14:31 +00:00
Trevor Gross
269a7ef042
Merge pull request #685 from alexcrichton/wams-div128
Use the trifecta div algorithm for 128-bit div on wasm
2024-09-05 12:14:05 -04:00
Alex Crichton
625462202e Use the trifecta div algorithm for 128-bit div on wasm
This commit updates the `#[cfg]` annotations used to select the
implementation of 128-bit division in compiler-builtins on wasm targets.
This is done with relation to
https://github.com/WebAssembly/128-bit-arithmetic where performance of
128-bit operations is being investigated on WebAssembly. While I don't
know much about the particulars of the two algorithms involved here the
comments indicate that the "trifecta" variant is preferred if possible
but it's not selected on 32-bit architectures. This rationale isn't as
applicable to WebAssembly targets because despite the 32-bit pointer
width there are often wider-than-pointer operations available as it's
typically run on 64-bit machines.

Locally in testing a benchmark that performs division with a Rust-based
bignum libraries whent from 350% slower-than-native to 220%
slower-than-native with this change, a nice increase in speed. While
this was tested with Wasmtime other runtimes are likely to see an
improvement as well.
2024-09-05 09:03:28 -07:00
Sbstn Bcht
69406c118a
Remove unsupported *vfp functions (#678)
Remove all *vfp functions and related tests since LLVM no longer emits them.

Link: https://github.com/rust-lang/compiler-builtins/pull/626

[ Reword commit message - Trevor ]
2024-09-03 22:55:44 -04:00
Trevor Gross
6a78d7c2b6
Merge pull request #683 from rust-lang/release-plz-2024-09-01T03-20-30Z
chore: release v0.1.124
2024-08-31 22:27:25 -05:00
github-actions[bot]
39920c73dd
chore: release 2024-09-01 03:20:30 +00:00
Trevor Gross
c371c4e81a
Merge pull request #682 from CodeLinaro/bcain/dunders
[hexagon] Remove aliases w/o leading __
2024-08-31 22:20:06 -05:00
Brian Cain
a3a5a00b9a [hexagon] Remove aliases w/o leading __
These hexagon builtins incorrectly created aliases in the global
namespace which can (and in at least one case, did) conflict
with symbols defined by other programs.

This should address the issue reported as https://github.com/rust-lang/rust/issues/129823:

	   Compiling compiler_builtins v0.1.123
	   Compiling core v0.0.0 (/home/ben/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
	   Compiling rustc-std-workspace-core v1.99.0 (/home/ben/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
	   Compiling byteorder v1.5.0
	   Compiling zerocopy v0.7.34
	error: symbol 'fma' is already defined

	error: could not compile `compiler_builtins` (lib) due to 1 previous error

Also: some of the symbols defined were not just aliases, so those are
now qualified with `__hexagon_`.  The compiler does not yet emit calls
to these particular ones, but if/when it does, it can use the new names.
2024-08-31 12:59:37 -05:00
Trevor Gross
74946afcba
Merge pull request #681 from rust-lang/release-plz-2024-08-28T16-15-08Z
chore: release v0.1.123
2024-08-28 11:23:03 -05:00
github-actions[bot]
5b227e4772
chore: release 2024-08-28 16:15:09 +00:00
Trevor Gross
b99359f70d
Merge pull request #680 from Amjad50/fix-builtin-math-symbols-ignored
Don't include `math` for `unix` and `wasi` targets
2024-08-28 11:14:38 -05:00
Amjad Alsharafi
1652ba219c
Don't include math for unix and wasi targets
This fixes such as (https://github.com/rust-lang/rust/issues/128386)
where, our implementation is being used on systems where there is
already `math` library and its more performant and accurate.

So with this change, linux will go back to the previous behavior and not
include these functions, windows and apple were generally not affected.

Looking at the targets we have builtin now in rust, everything else is
probably good to have the math symbols.

> A note on the above, the `hermit` os uses `libm` directly for itself,
> but I think its Ok to keep providing math in `compiler_builtin` for it,
> its technically the same implementation either from `compiler_builtin`
> or `hermit-builtins`.

Signed-off-by: Amjad Alsharafi <26300843+Amjad50@users.noreply.github.com>
2024-08-27 13:03:29 +08:00
Trevor Gross
c5c87c5f3f
Merge pull request #677 from rust-lang/release-plz-2024-08-25T04-08-05Z
chore: release v0.1.122
2024-08-24 23:15:58 -05:00
github-actions[bot]
18109c2d2d
chore: release 2024-08-25 04:08:06 +00:00
beetrees
a17a15b08a Fix ABI for f16 builtins on Intel Apple targets 2024-08-24 23:07:35 -05:00