Amanieu d'Antras
c585b7fd4e
Merge pull request #466 from Patryk27/avr
2022-05-24 19:58:50 +02:00
Amanieu d'Antras
ad71d3c6d5
Merge pull request #460 from keith/ks/remove-apple_versioning.c-inclusion
2022-05-24 19:50:27 +02:00
Patryk Wychowaniec
ac47841ce2
Add avr_skip for __udivti3 & __umodti3
2022-05-24 19:49:08 +02:00
Amanieu d'Antras
092bbb67d4
Merge pull request #465 from thomcc/cast-before-transmute
2022-05-24 19:24:15 +02:00
Amanieu d'Antras
f1fe94e882
Merge pull request #462 from Patryk27/avr
2022-05-24 16:41:59 +02:00
Thom Chiovoloni
dcdd9bbc56
Avoid int to ptr transmute by casting first
2022-05-23 23:34:10 -07:00
Mara Bos
425c78ee7a
Faster int<->float conversions.
2022-05-20 16:25:18 +02:00
Mara Bos
7ed26a7e7a
De-duplicate 128 bit float conv intrinsics using cfg_attr.
2022-05-20 15:04:36 +02:00
Mara Bos
2063e07b35
Support cfg_attr attributes in intrinsics!() macro.
2022-05-20 15:01:50 +02:00
Patryk Wychowaniec
a695a800d5
Fix division on AVRs
...
For division and modulo, AVR uses a custom calling convention that does
not match compiler_builtins' expectations, leading to non-working code¹.
Ideally we'd just use hand-written naked functions (as, afair, ARM
does), but that's a lot of code to port², so hopefully we'll be able to
do it gradually later.
For the time being, I'd suggest not compiling problematic functions for
AVR target - this causes avr-gcc (which is a mandatory part of Rust+AVR
toolchain anyway) to link hand-written assembly from libgcc, which is
confirmed to work.
I've tested the code locally on simavr and the patch seems to be working
correctly :-)
¹ https://github.com/rust-lang/rust/issues/82242 ,
https://github.com/rust-lang/rust/issues/83281
² 31048012db/libgcc/config/avr/lib1funcs.S
Closes https://github.com/rust-lang/rust/issues/82242
Closes https://github.com/rust-lang/rust/issues/83281
2022-05-17 23:21:45 +02:00
Johannes Stoelp
65ec71d386
rv32 rv64: adapt conditional compilation
...
Adapt conditional compilation as:
rv32i : riscv:__mulsi3, riscv:__muldi3
rv32im: riscv:__mulsi3, int/mul:__muldi3
rv64i : riscv:__mulsi3, riscv:__muldi3
rv64im: riscv:__mulsi3, int/mul:__muldi3
2022-05-12 00:34:49 +02:00
Keith Smiley
7d79662fd1
Remove apple_versioning.c inclusion
...
According to the README this file isn't used by rust, but it's currently
included which leads to these linker warnings in some cases:
```
ld: warning: linker symbol '$ld$hide$os10.5$___udivti3' hides a non-existent symbol '___udivti3'
ld: warning: linker symbol '$ld$hide$os10.4$___umoddi3' hides a non-existent symbol '___umoddi3'
ld: warning: linker symbol '$ld$hide$os10.5$___umoddi3' hides a non-existent symbol '___umoddi3'
ld: warning: linker symbol '$ld$hide$os10.4$___umodti3' hides a non-existent symbol '___umodti3'
ld: warning: linker symbol '$ld$hide$os10.5$___umodti3' hides a non-existent symbol '___umodti3'
```
This file exclusively contains macros which hides old symbols on Apple
OS versions where they don't exist.
fc10370ef7/compiler-rt/lib/builtins/apple_versioning.c
2022-05-02 16:06:42 -07:00
Johannes Stoelp
10971912e8
rv64 implement muldi3 intrinsic
...
Implement the __muldi3 intrinsic to prevent infinite recursion during
multiplication on rv64 without the 'm' extension.
2022-05-02 23:00:12 +02:00
Amanieu d'Antras
c307915e78
Bump to 0.1.72
2022-03-30 19:39:47 +01:00
Peter Collingbourne
c491ca7ec5
Build emutls.c on Android.
...
Android uses emulated TLS so we need a runtime support function
from this source file.
2022-03-24 11:25:47 -07:00
Amanieu d'Antras
8abefcd926
Bump to 0.1.71
2022-03-18 20:12:07 +00:00
Vadim Petrochenkov
7f535824f5
Provide an implementation of strlen to be used as a fallback
2022-03-18 21:42:11 +03:00
Vladimir Michael Eatwell
50c5587f82
[watch_os] Fix formatting
2022-03-08 10:19:34 +00:00
Vladimir Michael Eatwell
002fc52f00
[watch_os] add watchOS
2022-03-08 10:05:44 +00:00
Amanieu d'Antras
96339ec86d
Bump to 0.1.70
2022-02-16 01:18:05 +00:00
Nikita Popov
0575846f80
Handle Win64 builtins ABI change in LLVM 14
...
As of https://reviews.llvm.org/D110413 , these no longer use the
unadjusted ABI (and use normal C ABI instead, passing i128
indirectly and returning it as <2 x i64>).
To support both LLVM 14 and older versions, rustc will expose a
"llvm14-builtins-abi" target feature, based on which
compiler-builtins can chose the appropriate ABI.
This is needed for rust-lang/rust#93577 .
2022-02-15 16:29:29 +01:00
Amanieu d'Antras
e771805ee5
Bump to 0.1.69
2022-02-09 21:02:02 +00:00
Amanieu d'Antras
5bdeade2c4
Fix typo in __aeabi_uldivmod
...
Accidentally introduced in #452
2022-02-09 21:01:07 +00:00
Amanieu d'Antras
2f988a88ff
Bump to 0.1.68
2022-02-06 09:59:11 +00:00
Amanieu d'Antras
f34d42cf49
Update libm submodule to 0.2.2
2022-02-06 09:53:16 +00:00
Amanieu d'Antras
e346c7c408
Merge pull request #452 from Amanieu/intrinsic_mod
2022-02-06 09:49:01 +00:00
Amanieu d'Antras
f03c7fd6af
Wrap all intrinsics in the intrinsics! macro
...
This ensures that each intrinsic ends up in a separate module, which in
turn (because rustc treats compiler_builtins specially) will result in
each intrinsic ending up in its own object file. This allows the linker
to only pick up object files for intrinsics that are missing and avoids
duplicate symbol definition errors.
2022-02-06 09:20:43 +00:00
Amanieu d'Antras
c51299d63a
Fix run-docker.sh so it can be run locally
2022-02-06 09:20:19 +00:00
Amanieu d'Antras
f5fa287bc2
Bump to 0.1.67
2022-01-28 12:47:27 +00:00
Daniel Sommermann
554fa533ab
Stop emitting duplicate symbols for armv7-linux-androideabi
...
The change in 186517b3266a7bb2b2310927f7342ea7f41790c3 was intended to
affect only `arm-linux-androideabi` but also affected
`armv7-linux-androideabi` which is not a pre-ARMv6 architecture.
Fixes #449
2022-01-27 12:02:40 -08:00
Amanieu d'Antras
df4d9cd6cc
Bump to 0.1.66
2021-12-13 02:25:49 +00:00
Ayrton
9124cdc7ec
Remove truncdfsf2.c from sources in build.rs and add test for __truncdfsf2vfp
...
Also fixed the calling convention for truncdfsf2 on ARM
2021-12-12 21:12:42 -05:00
Ayrton
03b4f62337
Add __truncdfsf2vfp for ARM
2021-12-12 15:36:09 -05:00
Ayrton
39cd6082e4
Add attribute for ARM alias
2021-12-12 15:19:05 -05:00
Ayrton
9e65060184
Add __truncdfsf2 intrinsic
...
This adds the truncdfsf2 intrinsic and a corresponding fuzz test case. The
implementation of trunc is generic to make it easy to add truncdfhs2 and
truncsfhf2 if rust ever gets `f16` support.
2021-12-12 15:01:34 -05:00
Amanieu d'Antras
c7dc3215a1
Bump to 0.1.56
2021-12-10 00:11:25 +00:00
Amanieu d'Antras
0928b32141
Fix clippy lints
2021-12-10 00:04:25 +00:00
Amanieu d'Antras
4abfecabef
Import the asm! macro from core::arch
...
It is going to be removed from the prelude due to the decision in
https://github.com/rust-lang/rust/issues/87228
2021-12-09 23:57:26 +00:00
Amanieu d'Antras
c17d0c2780
Bump to 0.1.55
2021-11-28 15:30:04 +00:00
Amanieu d'Antras
c750277268
Ensure AArch64 LSE object files have distinct names in an archive
...
This is needed by libtool which rejects archives that contain object
files with the same name multiple times.
Fixes #443
2021-11-28 13:02:09 +00:00
Amanieu d'Antras
a01a61bd36
Bump to 0.1.54
2021-11-28 11:19:54 +00:00
William D. Jones
f275e26e3d
Use fully-qualified syntax for abs_diff to avoid warning, which can trigger a compiler error.
2021-11-27 19:38:43 -05:00
William D. Jones
e6d7983889
Do not use atomic reads on platforms without atomic support in LLVM.
2021-11-27 17:47:46 -05:00
Amanieu d'Antras
54e028e964
Bump to 0.1.53
2021-11-25 00:01:25 +00:00
Alessandro Decina
d96a0a0877
Turn on the mem-unaligned feature for bpf targets
...
Fixes the following LLVM segfault:
Error: e: 05:02:06 [ERROR] fatal error: "Cannot select: 0x55e970a357d0: i64,ch = AtomicLoad<(load unordered (s64) from %ir.45)> 0x55e970410be8, 0x55e970a358a0\n 0x55e970a358a0: i64,ch = CopyFromReg 0x55e970410be8, Register:i64 %19\n 0x55e970a35490: i64 = Register %19\nIn function: memcpy"
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Running pass 'Function Pass Manager' on module 'unroll-loop'.
1. Running pass 'BPF DAG->DAG Pattern Instruction Selection' on function '@memcpy'
2021-11-21 07:07:14 +00:00
Amanieu d'Antras
8e7401a151
Bump to 0.1.52
2021-11-01 23:02:56 +00:00
Alex Crichton
9a01750b1b
Use more concise directives
2021-10-28 16:32:30 -07:00
Alex Crichton
b7fb6c594a
Adjust some build directives for wasm64
...
This is still an experimental target but this should get the wasm64
target to behave more like wasm32.
2021-10-28 10:29:37 -07:00
Amanieu d'Antras
2d12d7150a
Bump to 0.1.51
2021-10-17 01:41:40 +02:00
Scott Mabin
3b4d10f6bc
Add xtensa to list of soft math targets.
2021-10-16 15:27:40 +01:00