about summary refs log tree commit diff
path: root/compiler/rustc_target/src/spec/aarch64_apple_ios.rs
AgeCommit message (Collapse)AuthorLines
2023-11-08targets: move target specs to spec/targetsDavid Wood-37/+0
Signed-off-by: David Wood <david@davidtw.co>
2023-11-08target: move base specs to spec/baseDavid Wood-1/+1
Signed-off-by: David Wood <david@davidtw.co>
2023-02-12Add sanitizer support for modern iOS platformsKeith Smiley-2/+5
asan and tsan generally support iOS, but that previously wasn't configured in rust. This only adds support for the simulator architectures, and arm64 device architecture, not the older 32 bit architectures.
2022-11-05Cleanup Apple target specificationsBlackHoleFox-8/+6
2022-11-05Merge apple_base and apple_sdk_base into one moduleBlackHoleFox-4/+4
2022-04-03Replace every `String` in Target(Options) with `Cow<'static, str>`Loïc BRANSTETT-5/+5
2021-08-16Generate an iOS LLVM target with a specific versionkit-1/+8
Without the specific version, the mach-o header will be missing the minimum supported operating system version. This is mandatory for running Rust binaries on iOS devices.
2021-07-06Replace per-target ABI denylist with an allowlistSimonas Kazlauskas-3/+1
It makes very little sense to maintain denylists of ABIs when, as far as non-generic ABIs are concerned, targets usually only support a small subset of the available ABIs. This has historically been a cause of bugs such as us allowing use of the platform-specific ABIs on x86 targets – these in turn would cause LLVM errors or assertions to fire. Fixes #57182 Sponsored by: standard.ai
2021-06-30Add support for leaf fn frame pointer eliminationSimonas Kazlauskas-1/+2
This PR adds ability for the target specifications to specify frame pointer emission type that's not just “always” or “whatever cg decides”. In particular there's a new mode that allows omission of the frame pointer for leaf functions (those that don't call any other functions). We then set this new mode for Aarch64-based Apple targets. Fixes #86196
2021-06-02Turn off frame pointer elimination on all Apple platforms.Jeff Muizelaar-1/+0
This ends up disabling frame pointer elimination on aarch64_apple_darwin which matches what clang does by default along with the aarch64_apple_ios and x86_64_apple_darwin targets. Further, the Apple docs "Writing ARM64 Code for Apple Platforms" has a section called "Respect the Purpose of Specific CPU Registers" which specifically calls out the frame pointer register (x29): The frame pointer register (x29) must always address a valid frame record. Some functions — such as leaf functions or tail calls — may opt not to create an entry in this list As a result, stack traces are always meaningful, even without debug information. Other platforms are updated to not override the default.
2020-11-07rustc_target: Move `linker_flavor` from `Target` to `TargetOptions`Vadim Petrochenkov-2/+1
2020-11-07rustc_target: Move `target_vendor` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-11-07rustc_target: Move `target_env` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-11-07rustc_target: Move `target_os` from `Target` to `TargetOptions`Vadim Petrochenkov-2/+1
2020-11-07rustc_target: Move `target_endian` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-11-07rustc_target: Move `target_c_int_width` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-10-15Use integer literals for builtin target_pointer_width fieldsest31-1/+1
Also change target_pointer_width to pointer_width. Preparation for a subsequent type change of target_pointer_width to an integer together with a rename to pointer_width. On its own, this commit breaks the build. I don't like making build-breaking commits, but in this instance I believe that it makes review easier, as the "real" changes of this PR can be seen much more easily. Result of running: find compiler/rustc_target/src/spec/ -type f -exec sed -i -e 's/target_pointer_width: "\(.*\)"\..*,/pointer_width: \1,/g' {} \;
2020-10-05rustc_target: Refactor away `TargetResult`Vadim Petrochenkov-4/+4
Construction of a built-in target is always infallible now, so `TargetResult` is no longer necessary.
2020-09-25Defer Apple SDKROOT detection to link time.Eric Huss-2/+2
2020-08-30mv compiler to compiler/mark-0/+37