about summary refs log tree commit diff
path: root/src/test/codegen/abi-efiapi.rs
AgeCommit message (Collapse)AuthorLines
2023-01-11Move /src/test to /testsAlbert Larsan-33/+0
2022-11-06Use aapcs for efiapi calling convention on armNicholas Bishop-1/+1
On arm, llvm treats the C calling convention as `aapcs` on soft-float targets and `aapcs-vfp` on hard-float targets [1]. UEFI specifies in the arm calling convention that floating point extensions aren't used [2], so always translate `efiapi` to `aapcs` on arm. [1]: https://github.com/rust-lang/compiler-builtins/issues/116#issuecomment-261057422 [2]: https://uefi.org/specs/UEFI/2.10/02_Overview.html#detailed-calling-convention https://github.com/rust-lang/rust/issues/65815
2022-09-09Use RelocModel::Pic for UEFI targetsNicholas Bishop-1/+1
In https://github.com/rust-lang/rust/pull/100537, the relocation model for UEFI targets was changed from PIC (the default value) to static. There was some dicussion of this change here: https://github.com/rust-lang/rust/pull/100537#discussion_r952363012 It turns out that this can cause compilation to fail as described in https://github.com/rust-lang/rust/issues/101377, so switch back to PIC. Fixes https://github.com/rust-lang/rust/issues/101377
2022-08-27Update tests for UEFI and AVRVadim Petrochenkov-1/+1
2021-06-24Re-Annotate the tests with needs-llvm-componentsSimonas Kazlauskas-2/+5
Doesn't work though, because compiletest doesn't process ignores on a per-revision manner.
2021-04-03Manually set dso_local when its valid to do soSimonas Kazlauskas-3/+3
This should have no real effect in most cases, as e.g. `hidden` visibility already implies `dso_local` (or at least LLVM IR does not preserve the `dso_local` setting if the item is already `hidden`), but it should fix `-Crelocation-model=static` and improve codegen in executables. Note that this PR does not exhaustively port the logic in [clang]. Only the obviously correct portion and what is necessary to fix a regression from LLVM 12 that relates to `-Crelocation_model=static`. Fixes #83335 [clang]: https://github.com/llvm/llvm-project/blob/3001d080c813da20b329303bf8f45451480e5905/clang/lib/CodeGen/CodeGenModule.cpp#L945-L1039
2020-11-12fully exploited the dropped support of LLVM 8DevJPM-1/+0
This commit grepped for LLVM_VERSION_GE, LLVM_VERSION_LT, get_major_version and min-llvm-version and statically evaluated every expression possible (and sensible) assuming that the LLVM version is >=9 now
2020-08-02compiletest: Support ignoring tests requiring missing LLVM componentsVadim Petrochenkov-2/+6
2020-07-19Add missing : after *llvm-versionLzu Tao-1/+1
2019-11-04Do not require extra LLVM backends for `x.py test` to passVadim Petrochenkov-5/+1
2019-10-26Only run efiapi test on llvm 9.0+roblabla-0/+2
2019-10-25Fix EFIABI testroblabla-12/+21
Use revisions to run the EFIABI in multiple configurations, compiling for each supported UEFI platform, and checking the ABI generated in the LLVM IR is correct. Use no_core to make it easier to test.
2019-10-25Add new EFIAPI ABIroblabla-0/+20
Adds a new ABI for the EFIAPI calls. This ABI should reflect the latest version of the UEFI specification at the time of commit (UEFI spec 2.8, URL below). The specification says that for x86_64, we should follow the win64 ABI, while on all other supported platforms (ia32, itanium, arm, arm64 and risc-v), we should follow the C ABI. To simplify the implementation, we will simply follow the C ABI on all platforms except x86_64, even those technically unsupported by the UEFI specification. https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf