From 90ecad0526a0a92b2e2ab54e6e19ccc7d2d38e89 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Thu, 23 Nov 2023 01:31:09 +0100 Subject: [PATCH] Update minimum required Apple versions The versions supported by Rust was updated in https://github.com/rust-lang/rust/pull/104385 to: - macOS: 10.12 Sierra - iOS: 10.0 - tvOS: 10.0 - watchOS: 5.0 Additionally, the armv7-apple-ios target was removed. Finally, since v1.0.84 of `cc` (has been yanked, but 1.0.85 will include it as well), there is much better support for specifying the deployment target for Apple targets, so I've removed the corresponding code from objc-sys. --- .github/workflows/ci.yml | 17 +- crates/block-sys/Cargo.toml | 1 - crates/block2/Cargo.toml | 1 - crates/header-translator/src/main.rs | 1 - crates/icrate/Cargo.toml | 1 - crates/icrate/README.md | 8 +- crates/objc-sys/Cargo.toml | 3 +- crates/objc-sys/README.md | 24 +- crates/objc-sys/build.rs | 128 +-- crates/objc2-encode/Cargo.toml | 1 - crates/objc2/Cargo.toml | 1 - .../expected/apple-armv7.s | 19 - .../test_declare_class/expected/apple-armv7.s | 886 ------------------ .../test_dynamic_class/expected/apple-armv7.s | 356 ------- .../test_dynamic_sel/expected/apple-armv7.s | 325 ------- .../expected/apple-armv7.s | 61 -- .../expected/apple-armv7.s | 322 ------- .../expected/apple-armv7.s | 227 ----- .../test_msg_send_id/expected/apple-armv7.s | 205 ---- .../expected/apple-armv7.s | 187 ---- .../expected/apple-armv7.s | 30 - .../test_ns_string/expected/apple-armv7.s | 122 --- .../expected/apple-armv7.s | 227 ----- .../expected/apple-armv7.s | 16 - .../test_static_class/expected/apple-armv7.s | 154 --- .../test_static_sel/expected/apple-armv7.s | 202 ---- helper-scripts/get_llvm_targets.fish | 2 +- helper-scripts/run-assembly-tests.sh | 1 - .../{test-local.fish => test-local.sh} | 15 +- 29 files changed, 55 insertions(+), 3488 deletions(-) delete mode 100644 crates/test-assembly/crates/test_autorelease_return/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_declare_class/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_dynamic_class/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_dynamic_sel/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_extern_protocol/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_fast_enumeration/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_msg_send_error/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_msg_send_id/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_msg_send_zero_cost/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_ns_string/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_out_parameters/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_retain_autoreleased/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_static_class/expected/apple-armv7.s delete mode 100644 crates/test-assembly/crates/test_static_sel/expected/apple-armv7.s rename helper-scripts/{test-local.fish => test-local.sh} (58%) mode change 100755 => 100644 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 018b4b7d0..2ccf6e5c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,9 +25,11 @@ env: # Faster compilation, error on warnings and only document current crate RUSTFLAGS: "--codegen=debuginfo=0 --deny=warnings" RUSTDOCFLAGS: "--deny=warnings" - # Minimum deployment target - MACOSX_DEPLOYMENT_TARGET: 10.7 - IPHONEOS_DEPLOYMENT_TARGET: 7.0 + # Minimum deployment targets. + # Follows `rustc --target=x86_64-apple-darwin --print deployment-target` + MACOSX_DEPLOYMENT_TARGET: 10.12 + # Follows `rustc --target=x86_64-apple-ios --print deployment-target` + IPHONEOS_DEPLOYMENT_TARGET: 10.0 # We only support compiling Objective-C code with clang CC: clang CXX: clang++ @@ -102,7 +104,7 @@ jobs: --features=$INTERESTING_FEATURES --features=unstable-frameworks-macos-12 - name: iOS 32bit - target: armv7-apple-ios + target: armv7s-apple-ios build-std: true args: >- -Zbuild-std @@ -362,7 +364,7 @@ jobs: frameworks: macos-11 - name: Test macOS old SDK # Oldest macOS version we support - sdk: "10.7" + sdk: "10.12" frameworks: macos-10-7 - name: Test macOS nightly nightly: true @@ -380,11 +382,6 @@ jobs: - name: Build iOS ARM64 target: aarch64-apple-ios frameworks: ios - - name: Build iOS ARMv7 - target: armv7-apple-ios - nightly: true - build-std: true - frameworks: ios - name: Build iOS ARMv7s target: armv7s-apple-ios nightly: true diff --git a/crates/block-sys/Cargo.toml b/crates/block-sys/Cargo.toml index 3afca2de3..58d5b11f6 100644 --- a/crates/block-sys/Cargo.toml +++ b/crates/block-sys/Cargo.toml @@ -75,7 +75,6 @@ targets = [ # iOS "aarch64-apple-ios", "x86_64-apple-ios", - # "armv7-apple-ios", # "i386-apple-ios", # GNUStep "x86_64-unknown-linux-gnu", diff --git a/crates/block2/Cargo.toml b/crates/block2/Cargo.toml index 05fec97a1..09736c981 100644 --- a/crates/block2/Cargo.toml +++ b/crates/block2/Cargo.toml @@ -49,7 +49,6 @@ targets = [ # iOS "aarch64-apple-ios", "x86_64-apple-ios", - # "armv7-apple-ios", # "i386-apple-ios", # GNUStep "x86_64-unknown-linux-gnu", diff --git a/crates/header-translator/src/main.rs b/crates/header-translator/src/main.rs index 026d227b9..745dfff41 100644 --- a/crates/header-translator/src/main.rs +++ b/crates/header-translator/src/main.rs @@ -92,7 +92,6 @@ fn main() -> Result<(), BoxError> { ], Platform::IPhoneOs => &[ // "arm64-apple-ios7.0.0", - // "armv7-apple-ios7.0.0", // "armv7s-apple-ios", // "arm64-apple-ios14.0-macabi", // "x86_64-apple-ios13.0-macabi", diff --git a/crates/icrate/Cargo.toml b/crates/icrate/Cargo.toml index c6aa28141..069f91775 100644 --- a/crates/icrate/Cargo.toml +++ b/crates/icrate/Cargo.toml @@ -39,7 +39,6 @@ targets = [ # iOS "aarch64-apple-ios", "x86_64-apple-ios", - # "armv7-apple-ios", # "i386-apple-ios", # GNUStep "x86_64-unknown-linux-gnu", diff --git a/crates/icrate/README.md b/crates/icrate/README.md index ff0e4b2aa..a3db5e986 100644 --- a/crates/icrate/README.md +++ b/crates/icrate/README.md @@ -16,7 +16,7 @@ These bindings are automatically generated from the SDKs in Xcode 14.3.1 (will be periodically updated). Currently supports: -- macOS: `10.7-13.1` -- iOS/iPadOS: `7.0-16.2` (WIP) -- tvOS: `9.0-16.1` (WIP) -- watchOS: `1.0-9.1` (WIP) +- macOS: `10.12-13.1` +- iOS/iPadOS: `10.0-16.2` (WIP) +- tvOS: `10.0-16.1` (WIP) +- watchOS: `5.0-9.1` (WIP) diff --git a/crates/objc-sys/Cargo.toml b/crates/objc-sys/Cargo.toml index 4aa32da91..244401aa5 100644 --- a/crates/objc-sys/Cargo.toml +++ b/crates/objc-sys/Cargo.toml @@ -61,7 +61,7 @@ unstable-exception = ["cc"] unstable-docsrs = [] [build-dependencies] -cc = { version = "1", optional = true } +cc = { version = "1.0.80", optional = true } [package.metadata.docs.rs] default-target = "x86_64-apple-darwin" @@ -76,7 +76,6 @@ targets = [ # iOS "aarch64-apple-ios", "x86_64-apple-ios", - # "armv7-apple-ios", # "i386-apple-ios", # GNUStep "x86_64-unknown-linux-gnu", diff --git a/crates/objc-sys/README.md b/crates/objc-sys/README.md index 2b5c94d4d..99f49087d 100644 --- a/crates/objc-sys/README.md +++ b/crates/objc-sys/README.md @@ -36,22 +36,14 @@ This is used by default, and has the highest support priority (all of The supported runtime version (higher versions lets the compiler enable newer optimizations, at the cost of not supporting older operating systems) can be chosen using the standard `X_DEPLOYMENT_TARGET` environment variables: -- macOS: `MACOSX_DEPLOYMENT_TARGET` - - Default: `10.7`, `11.0` on Aarch64 - - Minimum: `10.7` -- iOS / iPadOS: `IPHONEOS_DEPLOYMENT_TARGET` - - Default: `7.0` - - Minimum: `5.0` (theoretically) -- tvOS: `TVOS_DEPLOYMENT_TARGET` - - Default: `7.0` - - Minimum: `5.0` (theoretically) -- watchOS: `WATCHOS_DEPLOYMENT_TARGET` - - Default: `5.0` - - Minimum: `1.0` (theoretically) - -The default versions are the [same as those Rust itself has][rust-apple-spec]. - -[rust-apple-spec]: https://github.com/rust-lang/rust/blob/fd815a5091eb4d49cd317f8ad272f17b7a5f550d/compiler/rustc_target/src/spec/apple_base.rs +- macOS: `MACOSX_DEPLOYMENT_TARGET`, default `10.12`, `11.0` on Aarch64. +- iOS / iPadOS: `IPHONEOS_DEPLOYMENT_TARGET`, default `10.0`. +- tvOS: `TVOS_DEPLOYMENT_TARGET`, default `10.0`. +- watchOS: `WATCHOS_DEPLOYMENT_TARGET`, default `5.0`. + +The default (and minimum) versions are the [same as those Rust itself has][rust-apple-spec]. + +[rust-apple-spec]: https://github.com/rust-lang/rust/blob/1.74.0/compiler/rustc_target/src/spec/apple_base.rs ### GNUStep's [`libobjc2`](https://github.com/gnustep/libobjc2) diff --git a/crates/objc-sys/build.rs b/crates/objc-sys/build.rs index dfc99698d..ca7755775 100644 --- a/crates/objc-sys/build.rs +++ b/crates/objc-sys/build.rs @@ -1,59 +1,13 @@ use std::{env, path::Path}; -/// TODO: Better validation of this -/// -/// The version is used for providing different behaviour when: -/// - CGException.cpp getObjCPersonality (GNUStep >= 1.7) -/// - Clang.cpp Clang::AddObjCRuntimeArgs (GNUStep >= 2.0) -/// - isLegacyDispatchDefaultForArch (macOS < 10.6, GNUStep < 1.6) -/// - hasNativeARC (macOS < 10.7, iOS < 5) -/// - shouldUseARCFunctionsForRetainRelease (macOS < 10.10, iOS < 8) -/// - shouldUseRuntimeFunctionsForAlloc (macOS < 10.10, iOS < 8) -/// - shouldUseRuntimeFunctionForCombinedAllocInit (macOS >= 10.14.4, iOS >= 12.2, watchOS >= 5.2) -/// - hasOptimizedSetter (macOS >= 10.8, iOS >= 6, GNUStep >= 1.7) -/// - hasSubscripting (macOS < 10.11, iOS < 9) -/// - hasTerminate (macOS < 10.8, iOS < 5) -/// - hasARCUnsafeClaimAutoreleasedReturnValue (macOS >= 10.11, iOS >= 9, watchOS >= 2) -/// - hasEmptyCollections (macOS >= 10.11, iOS >= 9, watchOS >= 2) -/// - ... (incomplete) -/// -/// `macosx-fragile` and `gcc` was not considered in this analysis, made on -/// clang version 13's source code: -/// https://github.com/llvm/llvm-project/blob/llvmorg-13.0.0/clang/include/clang/Basic/ObjCRuntime.h -/// -/// In short, it's not ultra important, but enables some optimizations if this -/// is specified. -type Version = String; - -// For clang "-fobjc-runtime" support -#[allow(clippy::upper_case_acronyms)] -enum AppleRuntime { - MacOS(Version), - IOS(Version), - TvOS(Version), - WatchOS(Version), - Unknown, - // BridgeOS, -} -use AppleRuntime::*; - +/// The selected runtime (and runtime version). enum Runtime { - Apple(AppleRuntime), + Apple, GNUStep(u8, u8), WinObjC, #[allow(dead_code)] ObjFW(Option), } -use Runtime::*; - -fn get_env(env: &str) -> Option { - println!("cargo:rerun-if-env-changed={env}"); - match env::var(env) { - Ok(var) => Some(var), - Err(env::VarError::NotPresent) => None, - Err(env::VarError::NotUnicode(var)) => panic!("Invalid unicode for {env}: {var:?}"), - } -} fn main() { // The script doesn't depend on our code @@ -102,39 +56,28 @@ fn main() { let runtime = match (apple, gnustep, objfw) { // Same logic as in https://github.com/rust-lang/rust/blob/1.63.0/compiler/rustc_target/src/spec/apple_base.rs - (true, false, false) => Apple(match &*target_os { - "macos" if target_arch == "aarch64" => { - MacOS(get_env("MACOSX_DEPLOYMENT_TARGET").unwrap_or_else(|| "11.0".into())) - } - "macos" => MacOS(get_env("MACOSX_DEPLOYMENT_TARGET").unwrap_or_else(|| "10.7".into())), - "ios" => IOS(get_env("IPHONEOS_DEPLOYMENT_TARGET").unwrap_or_else(|| "7.0".into())), - "tvos" => TvOS(get_env("TVOS_DEPLOYMENT_TARGET").unwrap_or_else(|| "7.0".into())), - "watchos" => { - WatchOS(get_env("WATCHOS_DEPLOYMENT_TARGET").unwrap_or_else(|| "5.0".into())) - } - _ => Unknown, - }), + (true, false, false) => Runtime::Apple, (false, true, false) => { // Choose defaults when generating docs if cfg!(feature = "unstable-docsrs") { if "windows" == target_os { - WinObjC + Runtime::WinObjC } else { - GNUStep(1, 7) + Runtime::GNUStep(1, 7) } } else if env::var_os("CARGO_FEATURE_UNSTABLE_WINOBJC").is_some() { - WinObjC + Runtime::WinObjC } else if env::var_os("CARGO_FEATURE_GNUSTEP_2_1").is_some() { - GNUStep(2, 1) + Runtime::GNUStep(2, 1) } else if env::var_os("CARGO_FEATURE_GNUSTEP_2_0").is_some() { - GNUStep(2, 0) + Runtime::GNUStep(2, 0) } else if env::var_os("CARGO_FEATURE_GNUSTEP_1_9").is_some() { - GNUStep(1, 9) + Runtime::GNUStep(1, 9) } else if env::var_os("CARGO_FEATURE_GNUSTEP_1_8").is_some() { - GNUStep(1, 8) + Runtime::GNUStep(1, 8) } else { // CARGO_FEATURE_GNUSTEP_1_7 - GNUStep(1, 7) + Runtime::GNUStep(1, 7) } } (false, false, true) => { @@ -148,50 +91,37 @@ fn main() { // Add `#[cfg(RUNTIME)]` directive let runtime_cfg = match runtime { - Apple(_) => "apple", + Runtime::Apple => "apple", // WinObjC can be treated like GNUStep 1.8 - GNUStep(_, _) | WinObjC => "gnustep", - ObjFW(_) => "objfw", + Runtime::GNUStep(_, _) | Runtime::WinObjC => "gnustep", + Runtime::ObjFW(_) => "objfw", }; println!("cargo:rustc-cfg={runtime_cfg}"); - if let Apple(runtime) = &runtime { + if let Runtime::Apple = &runtime { // A few things are defined differently depending on the __OBJC2__ // variable, which is set for all platforms except 32-bit macOS. - if let (MacOS(_), "x86") = (runtime, &*target_arch) { + if target_os == "macos" && target_arch == "x86" { println!("cargo:rustc-cfg=apple_old"); } else { println!("cargo:rustc-cfg=apple_new"); } } - let clang_runtime = match &runtime { - Apple(runtime) => { - match (runtime, &*target_arch) { - // The fragile runtime is expected on i686-apple-darwin, see: - // https://github.com/llvm/llvm-project/blob/release/13.x/clang/lib/Driver/ToolChains/Darwin.h#L228-L231 - // https://github.com/llvm/llvm-project/blob/release/13.x/clang/lib/Driver/ToolChains/Clang.cpp#L3639-L3640 - // https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtVersionsPlatforms.html - (MacOS(version), "x86") => format!("macosx-fragile-{version}"), - (MacOS(version), _) => format!("macosx-{version}"), - (IOS(version), _) => format!("ios-{version}"), - (WatchOS(version), _) => format!("watchos-{version}"), - // tvOS doesn't have its own -fobjc-runtime string - (TvOS(version), _) => format!("ios-{version}"), - // Choose a sensible default for other platforms that - // specified `apple`; this is likely not going to work anyhow - (Unknown, _) => "macosx".into(), - } - } + let clang_objc_runtime = match &runtime { + // Default to `clang`'s own heuristics. + // + // Note that the `cc` crate forwards the correct deployment target to clang as well. + Runtime::Apple => "".into(), // Default in clang is 1.6 // GNUStep's own default is 1.8 - GNUStep(major, minor) => format!("gnustep-{major}.{minor}"), + Runtime::GNUStep(major, minor) => format!(" -fobjc-runtime=gnustep-{major}.{minor}"), // WinObjC's libobjc2 is a fork of gnustep's from version 1.8 - WinObjC => "gnustep-1.8".into(), - ObjFW(version) => { + Runtime::WinObjC => " -fobjc-runtime=gnustep-1.8".into(), + Runtime::ObjFW(version) => { // Default in clang let version = version.as_deref().unwrap_or("0.8"); - format!("objfw-{version}") + format!(" -fobjc-runtime=objfw-{version}") } }; @@ -204,14 +134,8 @@ fn main() { // Assume the compiler is clang; if it isn't, this is probably going to // fail anyways, since we're using newer runtimes than GCC supports. // - // TODO: Should add we these, or is it someone else's responsibility? - // - `-mios-simulator-version-min={}` - // - `-miphoneos-version-min={}` - // - `-mmacosx-version-min={}` - // - ... - // // TODO: -fobjc-weak ? - let mut cc_args = format!("-fobjc-exceptions -fobjc-runtime={clang_runtime}"); + let mut cc_args = format!("-fobjc-exceptions{clang_objc_runtime}"); if let Runtime::ObjFW(_) = &runtime { // Add compability headers to make `#include ` work. diff --git a/crates/objc2-encode/Cargo.toml b/crates/objc2-encode/Cargo.toml index 91b0d646b..557fd45d2 100644 --- a/crates/objc2-encode/Cargo.toml +++ b/crates/objc2-encode/Cargo.toml @@ -37,7 +37,6 @@ targets = [ # iOS "aarch64-apple-ios", "x86_64-apple-ios", - # "armv7-apple-ios", # "i386-apple-ios", # GNUStep "x86_64-unknown-linux-gnu", diff --git a/crates/objc2/Cargo.toml b/crates/objc2/Cargo.toml index 96dc18391..fd3e781d4 100644 --- a/crates/objc2/Cargo.toml +++ b/crates/objc2/Cargo.toml @@ -125,7 +125,6 @@ targets = [ # iOS "aarch64-apple-ios", "x86_64-apple-ios", - # "armv7-apple-ios", # "i386-apple-ios", # GNUStep "x86_64-unknown-linux-gnu", diff --git a/crates/test-assembly/crates/test_autorelease_return/expected/apple-armv7.s b/crates/test-assembly/crates/test_autorelease_return/expected/apple-armv7.s deleted file mode 100644 index 871359113..000000000 --- a/crates/test-assembly/crates/test_autorelease_return/expected/apple-armv7.s +++ /dev/null @@ -1,19 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _simple - .p2align 2 - .code 32 -_simple: - b _objc_autoreleaseReturnValue - - .globl _with_body - .p2align 2 - .code 32 -_with_body: - push {r7, lr} - mov r7, sp - bl _objc_msgSend - pop {r7, lr} - b _objc_autoreleaseReturnValue - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_declare_class/expected/apple-armv7.s b/crates/test-assembly/crates/test_declare_class/expected/apple-armv7.s deleted file mode 100644 index f6138778a..000000000 --- a/crates/test-assembly/crates/test_declare_class/expected/apple-armv7.s +++ /dev/null @@ -1,886 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .p2align 2 - .code 32 -SYM(core[CRATE_ID]::ptr::drop_in_place::<::call_once<::class::{closure#0}>::{closure#0}>, 0): - bx lr - - .p2align 2 - .code 32 -SYM(::call_once::<::class::{closure#0}>::{closure#0}, 0): - push {r4, r5, r7, lr} - add r7, sp, #8 - push {r8, r10, r11} - sub sp, sp, #12 - ldr r0, [r0] - mov r2, #0 - ldrb r1, [r0] - strb r2, [r0] - cmp r1, #0 - beq LBB1_5 - movw r1, :lower16:(LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr-(LPC1_0+8)) - movt r1, :upper16:(LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr-(LPC1_0+8)) - movw r0, :lower16:(l_anon.[ID].11-(LPC1_1+8)) -LPC1_0: - ldr r1, [pc, r1] - movt r0, :upper16:(l_anon.[ID].11-(LPC1_1+8)) -LPC1_1: - add r0, pc, r0 - ldr r2, [r1] - mov r1, #15 - bl SYM(objc2::declare::ClassBuilder::new::GENERATED_ID, 0) - cmp r0, #0 - beq LBB1_6 - movw r1, :lower16:(L_anon.[ID].12-(LPC1_2+8)) - add r4, sp, #8 - movt r1, :upper16:(L_anon.[ID].12-(LPC1_2+8)) - movw r3, :lower16:(l_anon.[ID].13-(LPC1_3+8)) - movt r3, :upper16:(l_anon.[ID].13-(LPC1_3+8)) -LPC1_2: - add r1, pc, r1 -LPC1_3: - add r3, pc, r3 - mov r2, #0 - str r0, [sp, #8] - mov r0, r4 - strd r2, r3, [sp] - mov r2, #4 - mov r3, #1 - bl SYM(objc2::declare::ClassBuilder::add_ivar_inner_mono::GENERATED_ID, 0) - movw r8, :lower16:(l_anon.[ID].2-(LPC1_4+8)) - mov r0, #2 - movt r8, :upper16:(l_anon.[ID].2-(LPC1_4+8)) - movw r1, :lower16:(L_anon.[ID].14-(LPC1_5+8)) - movt r1, :upper16:(L_anon.[ID].14-(LPC1_5+8)) -LPC1_4: - add r8, pc, r8 -LPC1_5: - add r1, pc, r1 - stm sp, {r0, r8} - mov r0, r4 - mov r2, #4 - mov r3, #4 - bl SYM(objc2::declare::ClassBuilder::add_ivar_inner_mono::GENERATED_ID, 0) - movw r0, :lower16:(LL_OBJC_SELECTOR_REFERENCES_dealloc$non_lazy_ptr-(LPC1_6+8)) - mov r3, #0 - movt r0, :upper16:(LL_OBJC_SELECTOR_REFERENCES_dealloc$non_lazy_ptr-(LPC1_6+8)) - movw r10, :lower16:(l_anon.[ID].3-(LPC1_7+8)) -LPC1_6: - ldr r0, [pc, r0] - movt r10, :upper16:(l_anon.[ID].3-(LPC1_7+8)) -LPC1_7: - add r10, pc, r10 - ldr r1, [r0] - movw r11, :lower16:(SYM(::class::{closure#0}::__objc2_dealloc, 0)-(LPC1_8+8)) - movt r11, :upper16:(SYM(::class::{closure#0}::__objc2_dealloc, 0)-(LPC1_8+8)) - movw r5, :lower16:(l_anon.[ID].1-(LPC1_9+8)) - movt r5, :upper16:(l_anon.[ID].1-(LPC1_9+8)) -LPC1_8: - add r11, pc, r11 -LPC1_9: - add r5, pc, r5 - mov r0, r4 - strd r10, r11, [sp] - mov r2, r5 - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - movw r0, :lower16:(LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr-(LPC1_10+8)) - mov r2, r5 - movt r0, :upper16:(LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr-(LPC1_10+8)) - mov r3, #0 -LPC1_10: - ldr r0, [pc, r0] - ldr r1, [r0] - movw r9, :lower16:(_init-(LPC1_11+8)) - movt r9, :upper16:(_init-(LPC1_11+8)) - mov r0, r4 -LPC1_11: - add r9, pc, r9 - strd r8, r9, [sp] - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2-(LPC1_12+8)) - mov r0, r4 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2-(LPC1_12+8)) - mov r2, r5 -LPC1_12: - ldr r1, [pc, r1] - movw r11, :lower16:(_class_method-(LPC1_13+8)) - movt r11, :upper16:(_class_method-(LPC1_13+8)) - mov r3, #0 -LPC1_13: - add r11, pc, r11 - strd r10, r11, [sp] - bl SYM(objc2::declare::ClassBuilder::add_class_method_inner::GENERATED_ID, 0) - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc-(LPC1_14+8)) - mov r0, r4 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc-(LPC1_14+8)) - mov r2, r5 -LPC1_14: - ldr r1, [pc, r1] - movw r11, :lower16:(_method-(LPC1_15+8)) - movt r11, :upper16:(_method-(LPC1_15+8)) - mov r3, #0 -LPC1_15: - add r11, pc, r11 - strd r10, r11, [sp] - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5-(LPC1_16+8)) - mov r0, r4 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5-(LPC1_16+8)) -LPC1_16: - ldr r1, [pc, r1] - movw r3, :lower16:(_method_bool-(LPC1_17+8)) - movt r3, :upper16:(_method_bool-(LPC1_17+8)) - movw r10, :lower16:(l_anon.[ID].4-(LPC1_18+8)) - movt r10, :upper16:(l_anon.[ID].4-(LPC1_18+8)) -LPC1_17: - add r3, pc, r3 -LPC1_18: - add r10, pc, r10 - str r10, [sp] - str r3, [sp, #4] - mov r3, #1 - mov r2, r10 - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce-(LPC1_19+8)) - mov r0, r4 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce-(LPC1_19+8)) - mov r2, r5 -LPC1_19: - ldr r1, [pc, r1] - movw r9, :lower16:(_method_id-(LPC1_20+8)) - movt r9, :upper16:(_method_id-(LPC1_20+8)) - mov r3, #0 -LPC1_20: - add r9, pc, r9 - strd r8, r9, [sp] - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f-(LPC1_21+8)) - mov r0, r4 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f-(LPC1_21+8)) - mov r2, r10 -LPC1_21: - ldr r1, [pc, r1] - movw r9, :lower16:(_method_id_with_param-(LPC1_22+8)) - movt r9, :upper16:(_method_id_with_param-(LPC1_22+8)) - mov r3, #1 -LPC1_22: - add r9, pc, r9 - strd r8, r9, [sp] - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - movw r0, :lower16:(l_anon.[ID].17-(LPC1_23+8)) - mov r1, #9 - movt r0, :upper16:(l_anon.[ID].17-(LPC1_23+8)) -LPC1_23: - add r0, pc, r0 - bl SYM(objc2::runtime::AnyProtocol::get::GENERATED_ID, 0) - cmp r0, #0 - beq LBB1_4 - mov r1, r0 - add r0, sp, #8 - bl SYM(objc2::declare::ClassBuilder::add_protocol::GENERATED_ID, 0) -LBB1_4: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166-(LPC1_24+8)) - add r0, sp, #8 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166-(LPC1_24+8)) - mov r3, #1 -LPC1_24: - ldr r1, [pc, r1] - movw r2, :lower16:(l_anon.[ID].7-(LPC1_25+8)) - movt r2, :upper16:(l_anon.[ID].7-(LPC1_25+8)) - movw r9, :lower16:(_copyWithZone-(LPC1_26+8)) - movt r9, :upper16:(_copyWithZone-(LPC1_26+8)) -LPC1_25: - add r2, pc, r2 -LPC1_26: - add r9, pc, r9 - strd r8, r9, [sp] - bl SYM(objc2::declare::ClassBuilder::add_method_inner::GENERATED_ID, 0) - ldr r0, [sp, #8] - bl SYM(objc2::declare::ClassBuilder::register::GENERATED_ID, 0) - sub sp, r7, #20 - pop {r8, r10, r11} - pop {r4, r5, r7, pc} -LBB1_5: - movw r0, :lower16:(l_anon.[ID].8-(LPC1_27+8)) - mov r1, #43 - movt r0, :upper16:(l_anon.[ID].8-(LPC1_27+8)) - movw r2, :lower16:(l_anon.[ID].10-(LPC1_28+8)) - movt r2, :upper16:(l_anon.[ID].10-(LPC1_28+8)) -LPC1_27: - add r0, pc, r0 -LPC1_28: - add r2, pc, r2 - mov lr, pc - b SYM(core::panicking::panic::GENERATED_ID, 0) -LBB1_6: - movw r0, :lower16:(l_anon.[ID].11-(LPC1_29+8)) - mov r1, #15 - movt r0, :upper16:(l_anon.[ID].11-(LPC1_29+8)) - movw r2, :lower16:(l_anon.[ID].16-(LPC1_30+8)) - movt r2, :upper16:(l_anon.[ID].16-(LPC1_30+8)) -LPC1_29: - add r0, pc, r0 -LPC1_30: - add r2, pc, r2 - mov lr, pc - b SYM(objc2::__macro_helpers::declare_class::failed_declaring_class::GENERATED_ID, 0) - - .p2align 2 - .code 32 -SYM(<::call_once<::class::{closure#0}>::{closure#0} as core[CRATE_ID]::ops::function::FnOnce<(&std[CRATE_ID]::sync::once::OnceState,)>>::call_once::{shim:vtable#0}, 0): - push {r7, lr} - mov r7, sp - sub sp, sp, #4 - ldr r0, [r0] - str r0, [sp] - mov r0, sp - bl SYM(::call_once::<::class::{closure#0}>::{closure#0}, 0) - mov sp, r7 - pop {r7, pc} - - .globl _get_class - .p2align 2 - .code 32 -_get_class: - push {r7, lr} - mov r7, sp - sub sp, sp, #12 - movw r0, :lower16:(SYM(::class::REGISTER_CLASS, 0)-(LPC3_0+8)) - movt r0, :upper16:(SYM(::class::REGISTER_CLASS, 0)-(LPC3_0+8)) -LPC3_0: - add r0, pc, r0 - ldr r0, [r0] - dmb ish - cmp r0, #3 - bne LBB3_3 -LBB3_1: - movw r0, :lower16:(l_anon.[ID].11-(LPC3_4+8)) - mov r1, #15 - movt r0, :upper16:(l_anon.[ID].11-(LPC3_4+8)) -LPC3_4: - add r0, pc, r0 - bl SYM(objc2::runtime::AnyClass::get::GENERATED_ID, 0) - cmp r0, #0 - movne sp, r7 - popne {r7, pc} -LBB3_2: - movw r0, :lower16:(l_anon.[ID].8-(LPC3_5+8)) - mov r1, #43 - movt r0, :upper16:(l_anon.[ID].8-(LPC3_5+8)) - movw r2, :lower16:(l_anon.[ID].16-(LPC3_6+8)) - movt r2, :upper16:(l_anon.[ID].16-(LPC3_6+8)) -LPC3_5: - add r0, pc, r0 -LPC3_6: - add r2, pc, r2 - mov lr, pc - b SYM(core::panicking::panic::GENERATED_ID, 0) -LBB3_3: - movw r0, :lower16:(SYM(::class::REGISTER_CLASS, 0)-(LPC3_1+8)) - mov r2, #1 - movt r0, :upper16:(SYM(::class::REGISTER_CLASS, 0)-(LPC3_1+8)) - movw r3, :lower16:(l_anon.[ID].0-(LPC3_2+8)) - movt r3, :upper16:(l_anon.[ID].0-(LPC3_2+8)) - movw r1, :lower16:(l_anon.[ID].16-(LPC3_3+8)) - movt r1, :upper16:(l_anon.[ID].16-(LPC3_3+8)) - strb r2, [r7, #-5] - sub r2, r7, #5 -LPC3_3: - add r1, pc, r1 - str r2, [r7, #-4] -LPC3_1: - add r0, pc, r0 -LPC3_2: - add r3, pc, r3 - sub r2, r7, #4 - str r1, [sp] - mov r1, #0 - bl SYM(std::sys_common::once::queue::Once::call::GENERATED_ID, 0) - b LBB3_1 - - .globl _get_obj - .p2align 2 - .code 32 -_get_obj: - push {r4, r7, lr} - add r7, sp, #4 - movw r0, :lower16:(LL_OBJC_SELECTOR_REFERENCES_new$non_lazy_ptr-(LPC4_0+8)) - movt r0, :upper16:(LL_OBJC_SELECTOR_REFERENCES_new$non_lazy_ptr-(LPC4_0+8)) -LPC4_0: - ldr r0, [pc, r0] - ldr r4, [r0] - bl _get_class - mov r1, r4 - pop {r4, r7, lr} - b _objc_msgSend - - .globl _access_ivars - .p2align 2 - .code 32 -_access_ivars: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - bl _get_obj - mov r4, r0 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].12-(LPC5_0+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].12-(LPC5_0+8)) - movw r3, :lower16:(l_anon.[ID].13-(LPC5_1+8)) - movt r3, :upper16:(l_anon.[ID].13-(LPC5_1+8)) -LPC5_0: - add r1, pc, r1 -LPC5_1: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldrb r5, [r4, r0] - mov r0, r4 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC5_2+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC5_2+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC5_3+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC5_3+8)) -LPC5_2: - add r1, pc, r1 -LPC5_3: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldr r6, [r4, r0] - mov r0, r4 - bl _objc_release - mov r0, r5 - mov r1, r6 - pop {r4, r5, r6, r7, pc} - - .globl SYM(::class, 0) - .p2align 2 - .code 32 -SYM(::class, 0): - push {r7, lr} - mov r7, sp - sub sp, sp, #12 - movw r0, :lower16:(SYM(::class::REGISTER_CLASS, 0)-(LPC6_0+8)) - movt r0, :upper16:(SYM(::class::REGISTER_CLASS, 0)-(LPC6_0+8)) -LPC6_0: - add r0, pc, r0 - ldr r0, [r0] - dmb ish - cmp r0, #3 - bne LBB6_3 -LBB6_1: - movw r0, :lower16:(l_anon.[ID].11-(LPC6_4+8)) - mov r1, #15 - movt r0, :upper16:(l_anon.[ID].11-(LPC6_4+8)) -LPC6_4: - add r0, pc, r0 - bl SYM(objc2::runtime::AnyClass::get::GENERATED_ID, 0) - cmp r0, #0 - movne sp, r7 - popne {r7, pc} -LBB6_2: - movw r0, :lower16:(l_anon.[ID].8-(LPC6_5+8)) - mov r1, #43 - movt r0, :upper16:(l_anon.[ID].8-(LPC6_5+8)) - movw r2, :lower16:(l_anon.[ID].16-(LPC6_6+8)) - movt r2, :upper16:(l_anon.[ID].16-(LPC6_6+8)) -LPC6_5: - add r0, pc, r0 -LPC6_6: - add r2, pc, r2 - mov lr, pc - b SYM(core::panicking::panic::GENERATED_ID, 0) -LBB6_3: - movw r0, :lower16:(SYM(::class::REGISTER_CLASS, 0)-(LPC6_1+8)) - mov r2, #1 - movt r0, :upper16:(SYM(::class::REGISTER_CLASS, 0)-(LPC6_1+8)) - movw r3, :lower16:(l_anon.[ID].0-(LPC6_2+8)) - movt r3, :upper16:(l_anon.[ID].0-(LPC6_2+8)) - movw r1, :lower16:(l_anon.[ID].16-(LPC6_3+8)) - movt r1, :upper16:(l_anon.[ID].16-(LPC6_3+8)) - strb r2, [r7, #-5] - sub r2, r7, #5 -LPC6_3: - add r1, pc, r1 - str r2, [r7, #-4] -LPC6_1: - add r0, pc, r0 -LPC6_2: - add r3, pc, r3 - sub r2, r7, #4 - str r1, [sp] - mov r1, #0 - bl SYM(std::sys_common::once::queue::Once::call::GENERATED_ID, 0) - b LBB6_1 - - .p2align 2 - .code 32 -SYM(::class::{closure#0}::__objc2_dealloc, 0): - push {r4, r5, r7, lr} - add r7, sp, #8 - sub sp, sp, #8 - mov r4, r1 - mov r5, r0 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC7_0+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC7_0+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC7_1+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC7_1+8)) -LPC7_0: - add r1, pc, r1 -LPC7_1: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldr r0, [r5, r0] - cmp r0, #0 - beq LBB7_2 - bl _objc_release -LBB7_2: - movw r0, :lower16:(LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr-(LPC7_2+8)) - mov r1, r4 - movt r0, :upper16:(LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr-(LPC7_2+8)) - str r5, [sp] -LPC7_2: - ldr r0, [pc, r0] - ldr r0, [r0] - str r0, [sp, #4] - mov r0, sp - bl _objc_msgSendSuper - sub sp, r7, #8 - pop {r4, r5, r7, pc} - - .globl _init - .p2align 2 - .code 32 -_init: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #8 - movw r1, :lower16:(LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr-(LPC8_0+8)) - movt r1, :upper16:(LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr-(LPC8_0+8)) - movw r2, :lower16:(LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr-(LPC8_1+8)) -LPC8_0: - ldr r1, [pc, r1] - movt r2, :upper16:(LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr-(LPC8_1+8)) -LPC8_1: - ldr r2, [pc, r2] - ldr r1, [r1] - ldr r2, [r2] - stm sp, {r0, r2} - mov r0, sp - bl _objc_msgSendSuper - mov r4, r0 - cmp r0, #0 - beq LBB8_2 - mov r0, r4 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].12-(LPC8_2+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].12-(LPC8_2+8)) - movw r3, :lower16:(l_anon.[ID].13-(LPC8_3+8)) - movt r3, :upper16:(l_anon.[ID].13-(LPC8_3+8)) -LPC8_2: - add r1, pc, r1 -LPC8_3: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - mov r1, #42 - strb r1, [r4, r0] - mov r0, r4 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC8_4+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC8_4+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC8_5+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC8_5+8)) -LPC8_4: - add r1, pc, r1 -LPC8_5: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - mov r1, #0 - str r1, [r4, r0] -LBB8_2: - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _class_method - .p2align 2 - .code 32 -_class_method: - bx lr - - .globl _method - .p2align 2 - .code 32 -_method: - bx lr - - .globl _method_bool - .p2align 2 - .code 32 -_method_bool: - clz r0, r2 - lsr r0, r0, #5 - bx lr - - .globl _method_id - .p2align 2 - .code 32 -_method_id: - push {r4, r7, lr} - add r7, sp, #4 - mov r4, r0 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC12_0+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC12_0+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC12_1+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC12_1+8)) -LPC12_0: - add r1, pc, r1 -LPC12_1: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldr r0, [r4, r0] - cmp r0, #0 - beq LBB12_2 - bl _objc_retain - pop {r4, r7, lr} - b _objc_autoreleaseReturnValue -LBB12_2: - mov r0, #0 - pop {r4, r7, lr} - b _objc_autoreleaseReturnValue - - .globl _method_id_with_param - .p2align 2 - .code 32 -_method_id_with_param: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - mov r6, r2 - mov r5, r0 - bl SYM(objc2::runtime::nsobject::NSObject::new::GENERATED_ID, 0) - mov r4, r0 - cmp r6, #0 - beq LBB13_3 - mov r0, r5 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC13_0+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC13_0+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC13_1+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC13_1+8)) -LPC13_0: - add r1, pc, r1 -LPC13_1: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldr r0, [r5, r0] - cmp r0, #0 - beq LBB13_4 - bl _objc_retain - mov r5, r0 - b LBB13_5 -LBB13_3: - mov r5, r4 - mov r0, r5 - pop {r4, r5, r6, r7, lr} - b _objc_autoreleaseReturnValue -LBB13_4: - mov r5, #0 -LBB13_5: - mov r0, r4 - bl _objc_release - mov r0, r5 - pop {r4, r5, r6, r7, lr} - b _objc_autoreleaseReturnValue - - .globl _copyWithZone - .p2align 2 - .code 32 -_copyWithZone: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10} - mov r5, r0 - bl _get_obj - mov r4, r0 - cmp r0, #0 - beq LBB14_5 - mov r0, r5 - bl _object_getClass - movw r10, :lower16:(L_anon.[ID].12-(LPC14_0+8)) - mov r2, #4 - movt r10, :upper16:(L_anon.[ID].12-(LPC14_0+8)) - movw r8, :lower16:(l_anon.[ID].13-(LPC14_1+8)) - movt r8, :upper16:(l_anon.[ID].13-(LPC14_1+8)) -LPC14_0: - add r10, pc, r10 -LPC14_1: - add r8, pc, r8 - mov r1, r10 - mov r3, r8 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldrb r6, [r5, r0] - mov r0, r4 - bl _object_getClass - mov r1, r10 - mov r2, #4 - mov r3, r8 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - strb r6, [r4, r0] - mov r0, r5 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC14_2+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC14_2+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC14_3+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC14_3+8)) -LPC14_2: - add r1, pc, r1 -LPC14_3: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - ldr r0, [r5, r0] - cmp r0, #0 - beq LBB14_3 - bl _objc_retain - mov r5, r0 - b LBB14_4 -LBB14_3: - mov r5, #0 -LBB14_4: - mov r0, r4 - bl _object_getClass - movw r1, :lower16:(L_anon.[ID].14-(LPC14_4+8)) - mov r2, #4 - movt r1, :upper16:(L_anon.[ID].14-(LPC14_4+8)) - movw r3, :lower16:(l_anon.[ID].2-(LPC14_5+8)) - movt r3, :upper16:(l_anon.[ID].2-(LPC14_5+8)) -LPC14_4: - add r1, pc, r1 -LPC14_5: - add r3, pc, r3 - bl SYM(objc2::runtime::ivar_offset::GENERATED_ID, 0) - str r5, [r4, r0] -LBB14_5: - mov r0, r4 - pop {r8, r10} - pop {r4, r5, r6, r7, pc} - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].0: - .long SYM(core[CRATE_ID]::ptr::drop_in_place::<::call_once<::class::{closure#0}>::{closure#0}>, 0) - .asciz "\004\000\000\000\004\000\000" - .long SYM(<::call_once<::class::{closure#0}>::{closure#0} as core[CRATE_ID]::ops::function::FnOnce<(&std[CRATE_ID]::sync::once::OnceState,)>>::call_once::{shim:vtable#0}, 0) - .long SYM(::call_once::<::class::{closure#0}>::{closure#0}, 0) - - .section __TEXT,__const - .p2align 2, 0x0 -l_anon.[ID].1: - .byte 0 - - .p2align 2, 0x0 -l_anon.[ID].2: - .byte 19 - .space 19 - - .p2align 2, 0x0 -l_anon.[ID].3: - .byte 17 - .space 19 - - .p2align 2, 0x0 -l_anon.[ID].4: - .space 1 - .space 19 - -l_anon.[ID].5: - .ascii "_NSZone" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].6: - .byte 28 - .space 3 - .long l_anon.[ID].5 - .asciz "\007\000\000" - .long l_anon.[ID].1 - .space 4 - - .p2align 2, 0x0 -l_anon.[ID].7: - .byte 25 - .space 3 - .long l_anon.[ID].6 - .space 12 - - .section __TEXT,__const -l_anon.[ID].8: - .ascii "called `Option::unwrap()` on a `None` value" - -l_anon.[ID].9: - .ascii "$RUSTC/library/std/src/sync/once.rs" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].10: - .long l_anon.[ID].9 - .asciz "p\000\000\000\225\000\000\0002\000\000" - - .section __TEXT,__const -l_anon.[ID].11: - .ascii "CustomClassName" - - .section __TEXT,__literal4,4byte_literals -L_anon.[ID].12: - .ascii "_foo" - - .section __TEXT,__const - .p2align 2, 0x0 -l_anon.[ID].13: - .byte 5 - .space 19 - - .section __TEXT,__literal4,4byte_literals -L_anon.[ID].14: - .ascii "_obj" - - .section __TEXT,__const -l_anon.[ID].15: - .ascii "crates/$DIR/lib.rs" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].16: - .long l_anon.[ID].15 - .asciz "5\000\000\000\f\000\000\000\001\000\000" - -.zerofill __DATA,__bss,SYM(::class::REGISTER_CLASS, 0),4,2 - .section __TEXT,__const -l_anon.[ID].17: - .ascii "NSCopying" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_d874ee9262978be2 -L_OBJC_METH_VAR_NAME_d874ee9262978be2: - .asciz "classMethod" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2: - .long L_OBJC_METH_VAR_NAME_d874ee9262978be2 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_d874ee9262978be2 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_d874ee9262978be2: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc -L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc: - .asciz "method" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc: - .long L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_4539fd1dbda0cddc: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5 -L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5: - .asciz "methodBool:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5: - .long L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f7f521670860b0ce -L_OBJC_METH_VAR_NAME_f7f521670860b0ce: - .asciz "methodId" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce: - .long L_OBJC_METH_VAR_NAME_f7f521670860b0ce - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_f7f521670860b0ce - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_f7f521670860b0ce: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_6addfcf634c6232f -L_OBJC_METH_VAR_NAME_6addfcf634c6232f: - .asciz "methodIdWithParam:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f: - .long L_OBJC_METH_VAR_NAME_6addfcf634c6232f - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_6addfcf634c6232f - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_6addfcf634c6232f: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166 -L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166: - .asciz "copyWithZone:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166: - .long L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_4a8c690dbc9d8166: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers - .p2align 2, 0x0 -LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr: - .indirect_symbol L_OBJC_CLASSLIST_REFERENCES_$_NSObject - .long 0 -LL_OBJC_SELECTOR_REFERENCES_dealloc$non_lazy_ptr: - .indirect_symbol L_OBJC_SELECTOR_REFERENCES_dealloc - .long 0 -LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr: - .indirect_symbol L_OBJC_SELECTOR_REFERENCES_init - .long 0 -LL_OBJC_SELECTOR_REFERENCES_new$non_lazy_ptr: - .indirect_symbol L_OBJC_SELECTOR_REFERENCES_new - .long 0 - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_dynamic_class/expected/apple-armv7.s b/crates/test-assembly/crates/test_dynamic_class/expected/apple-armv7.s deleted file mode 100644 index 716bdd6d1..000000000 --- a/crates/test-assembly/crates/test_dynamic_class/expected/apple-armv7.s +++ /dev/null @@ -1,356 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _get_class - .p2align 2 - .code 32 -_get_class: - movw r0, :lower16:(__MergedGlobals-(LPC0_0+8)) - movt r0, :upper16:(__MergedGlobals-(LPC0_0+8)) -LPC0_0: - add r0, pc, r0 - ldr r0, [r0] - cmp r0, #0 - bxne lr -LBB0_1: - movw r0, :lower16:(__MergedGlobals-(LPC0_1+8)) - movt r0, :upper16:(__MergedGlobals-(LPC0_1+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC0_2+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC0_2+8)) - movw r2, :lower16:(l_anon.[ID].2-(LPC0_3+8)) - movt r2, :upper16:(l_anon.[ID].2-(LPC0_3+8)) -LPC0_1: - add r0, pc, r0 -LPC0_2: - add r1, pc, r1 -LPC0_3: - add r2, pc, r2 - b SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - - .globl _get_same_class - .p2align 2 - .code 32 -_get_same_class: - movw r3, :lower16:(__MergedGlobals-(LPC1_0+8)) - movt r3, :upper16:(__MergedGlobals-(LPC1_0+8)) -LPC1_0: - add r3, pc, r3 - ldr r0, [r3, #4] - cmp r0, #0 - bxne lr -LBB1_1: - movw r1, :lower16:(l_anon.[ID].0-(LPC1_1+8)) - add r0, r3, #4 - movt r1, :upper16:(l_anon.[ID].0-(LPC1_1+8)) - movw r2, :lower16:(l_anon.[ID].3-(LPC1_2+8)) - movt r2, :upper16:(l_anon.[ID].3-(LPC1_2+8)) -LPC1_1: - add r1, pc, r1 -LPC1_2: - add r2, pc, r2 - b SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - - .globl _get_different_class - .p2align 2 - .code 32 -_get_different_class: - movw r3, :lower16:(__MergedGlobals-(LPC2_0+8)) - movt r3, :upper16:(__MergedGlobals-(LPC2_0+8)) -LPC2_0: - add r3, pc, r3 - ldr r0, [r3, #8] - cmp r0, #0 - bxne lr -LBB2_1: - movw r1, :lower16:(l_anon.[ID].4-(LPC2_1+8)) - add r0, r3, #8 - movt r1, :upper16:(l_anon.[ID].4-(LPC2_1+8)) - movw r2, :lower16:(l_anon.[ID].5-(LPC2_2+8)) - movt r2, :upper16:(l_anon.[ID].5-(LPC2_2+8)) -LPC2_1: - add r1, pc, r1 -LPC2_2: - add r2, pc, r2 - b SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - - .globl _unused_class - .p2align 2 - .code 32 -_unused_class: - movw r0, :lower16:(SYM(test_dynamic_class[CRATE_ID]::unused_class::CACHED_CLASS, 0)-(LPC3_0+8)) - movt r0, :upper16:(SYM(test_dynamic_class[CRATE_ID]::unused_class::CACHED_CLASS, 0)-(LPC3_0+8)) -LPC3_0: - add r0, pc, r0 - ldr r0, [r0] - cmp r0, #0 - bxne lr -LBB3_1: - movw r0, :lower16:(SYM(test_dynamic_class[CRATE_ID]::unused_class::CACHED_CLASS, 0)-(LPC3_1+8)) - movt r0, :upper16:(SYM(test_dynamic_class[CRATE_ID]::unused_class::CACHED_CLASS, 0)-(LPC3_1+8)) - movw r1, :lower16:(l_anon.[ID].6-(LPC3_2+8)) - movt r1, :upper16:(l_anon.[ID].6-(LPC3_2+8)) - movw r2, :lower16:(l_anon.[ID].7-(LPC3_3+8)) - movt r2, :upper16:(l_anon.[ID].7-(LPC3_3+8)) -LPC3_1: - add r0, pc, r0 -LPC3_2: - add r1, pc, r1 -LPC3_3: - add r2, pc, r2 - b SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - - .globl _use_fns - .p2align 2 - .code 32 -_use_fns: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10} - movw r10, :lower16:(__MergedGlobals-(LPC4_0+8)) - mov r4, r0 - movt r10, :upper16:(__MergedGlobals-(LPC4_0+8)) -LPC4_0: - add r10, pc, r10 - ldr r8, [r10] - cmp r8, #0 - beq LBB4_5 - ldr r6, [r10, #4] - cmp r6, #0 - beq LBB4_6 -LBB4_2: - ldr r5, [r10, #8] - cmp r5, #0 - beq LBB4_7 -LBB4_3: - ldr r0, [r10, #12] - cmp r0, #0 - beq LBB4_8 -LBB4_4: - str r8, [r4] - str r6, [r4, #4] - str r5, [r4, #8] - str r0, [r4, #12] - pop {r8, r10} - pop {r4, r5, r6, r7, pc} -LBB4_5: - movw r0, :lower16:(__MergedGlobals-(LPC4_1+8)) - movt r0, :upper16:(__MergedGlobals-(LPC4_1+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC4_2+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC4_2+8)) - movw r2, :lower16:(l_anon.[ID].2-(LPC4_3+8)) - movt r2, :upper16:(l_anon.[ID].2-(LPC4_3+8)) -LPC4_1: - add r0, pc, r0 -LPC4_2: - add r1, pc, r1 -LPC4_3: - add r2, pc, r2 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - mov r8, r0 - ldr r6, [r10, #4] - cmp r6, #0 - bne LBB4_2 -LBB4_6: - movw r1, :lower16:(l_anon.[ID].0-(LPC4_4+8)) - add r0, r10, #4 - movt r1, :upper16:(l_anon.[ID].0-(LPC4_4+8)) - movw r2, :lower16:(l_anon.[ID].3-(LPC4_5+8)) - movt r2, :upper16:(l_anon.[ID].3-(LPC4_5+8)) -LPC4_4: - add r1, pc, r1 -LPC4_5: - add r2, pc, r2 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - mov r6, r0 - ldr r5, [r10, #8] - cmp r5, #0 - bne LBB4_3 -LBB4_7: - movw r1, :lower16:(l_anon.[ID].4-(LPC4_6+8)) - add r0, r10, #8 - movt r1, :upper16:(l_anon.[ID].4-(LPC4_6+8)) - movw r2, :lower16:(l_anon.[ID].5-(LPC4_7+8)) - movt r2, :upper16:(l_anon.[ID].5-(LPC4_7+8)) -LPC4_6: - add r1, pc, r1 -LPC4_7: - add r2, pc, r2 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - mov r5, r0 - ldr r0, [r10, #12] - cmp r0, #0 - bne LBB4_4 -LBB4_8: - movw r1, :lower16:(l_anon.[ID].8-(LPC4_8+8)) - add r0, r10, #12 - movt r1, :upper16:(l_anon.[ID].8-(LPC4_8+8)) - movw r2, :lower16:(l_anon.[ID].9-(LPC4_9+8)) - movt r2, :upper16:(l_anon.[ID].9-(LPC4_9+8)) -LPC4_8: - add r1, pc, r1 -LPC4_9: - add r2, pc, r2 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - b LBB4_4 - - .globl _use_same_twice - .p2align 2 - .code 32 -_use_same_twice: - push {r4, r5, r7, lr} - add r7, sp, #8 - push {r8} - movw r5, :lower16:(__MergedGlobals-(LPC5_0+8)) - mov r4, r0 - movt r5, :upper16:(__MergedGlobals-(LPC5_0+8)) -LPC5_0: - add r5, pc, r5 - ldr r8, [r5] - cmp r8, #0 - beq LBB5_3 - ldr r9, [r5] - cmp r9, #0 - beq LBB5_4 -LBB5_2: - strd r8, r9, [r4] - pop {r8} - pop {r4, r5, r7, pc} -LBB5_3: - movw r0, :lower16:(__MergedGlobals-(LPC5_1+8)) - movt r0, :upper16:(__MergedGlobals-(LPC5_1+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC5_2+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC5_2+8)) - movw r2, :lower16:(l_anon.[ID].2-(LPC5_3+8)) - movt r2, :upper16:(l_anon.[ID].2-(LPC5_3+8)) -LPC5_1: - add r0, pc, r0 -LPC5_2: - add r1, pc, r1 -LPC5_3: - add r2, pc, r2 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - mov r8, r0 - ldr r9, [r5] - cmp r9, #0 - bne LBB5_2 -LBB5_4: - movw r0, :lower16:(__MergedGlobals-(LPC5_4+8)) - movt r0, :upper16:(__MergedGlobals-(LPC5_4+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC5_5+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC5_5+8)) - movw r2, :lower16:(l_anon.[ID].2-(LPC5_6+8)) - movt r2, :upper16:(l_anon.[ID].2-(LPC5_6+8)) -LPC5_4: - add r0, pc, r0 -LPC5_5: - add r1, pc, r1 -LPC5_6: - add r2, pc, r2 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - mov r9, r0 - strd r8, r9, [r4] - pop {r8} - pop {r4, r5, r7, pc} - - .globl _use_in_loop - .p2align 2 - .code 32 -_use_in_loop: - cmp r0, #0 - bxeq lr -LBB6_1: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8} - movw r5, :lower16:(SYM(test_dynamic_class[CRATE_ID]::use_in_loop::CACHED_CLASS, 0)-(LPC6_0+8)) - mov r4, r0 - movt r5, :upper16:(SYM(test_dynamic_class[CRATE_ID]::use_in_loop::CACHED_CLASS, 0)-(LPC6_0+8)) - movw r8, :lower16:(l_anon.[ID].10-(LPC6_1+8)) - movt r8, :upper16:(l_anon.[ID].10-(LPC6_1+8)) - movw r6, :lower16:(l_anon.[ID].11-(LPC6_2+8)) - movt r6, :upper16:(l_anon.[ID].11-(LPC6_2+8)) -LPC6_0: - add r5, pc, r5 -LPC6_1: - add r8, pc, r8 -LPC6_2: - add r6, pc, r6 - b LBB6_3 -LBB6_2: - subs r4, r4, #1 - beq LBB6_5 -LBB6_3: - ldr r0, [r5] - cmp r0, #0 - bne LBB6_2 - mov r0, r5 - mov r1, r8 - mov r2, r6 - bl SYM(objc2::__macro_helpers::cache::CachedClass::fetch::GENERATED_ID, 0) - b LBB6_2 -LBB6_5: - pop {r8} - pop {r4, r5, r6, r7, lr} - bx lr - - .section __TEXT,__const -l_anon.[ID].0: - .asciz "NSObject" - -l_anon.[ID].1: - .ascii "crates/$DIR/../test_static_class/lib.rs" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].2: - .long l_anon.[ID].1 - .asciz "J\000\000\000\b\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].3: - .long l_anon.[ID].1 - .asciz "J\000\000\000\r\000\000\000\005\000\000" - - .section __TEXT,__const -l_anon.[ID].4: - .asciz "NSString" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].5: - .long l_anon.[ID].1 - .asciz "J\000\000\000\022\000\000\000\005\000\000" - - .section __TEXT,__const -l_anon.[ID].6: - .asciz "NSData" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].7: - .long l_anon.[ID].1 - .asciz "J\000\000\000\027\000\000\000\r\000\000" - - .section __TEXT,__const -l_anon.[ID].8: - .asciz "NSException" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].9: - .long l_anon.[ID].1 - .asciz "J\000\000\000\037\000\000\000\016\000\000" - - .section __TEXT,__const -l_anon.[ID].10: - .asciz "NSLock" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].11: - .long l_anon.[ID].1 - .asciz "J\000\000\000-\000\000\000\021\000\000" - -.zerofill __DATA,__bss,SYM(test_dynamic_class[CRATE_ID]::unused_class::CACHED_CLASS, 0),4,2 -.zerofill __DATA,__bss,SYM(test_dynamic_class[CRATE_ID]::use_in_loop::CACHED_CLASS, 0),4,2 -.zerofill __DATA,__bss,__MergedGlobals,16,2 -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_dynamic_sel/expected/apple-armv7.s b/crates/test-assembly/crates/test_dynamic_sel/expected/apple-armv7.s deleted file mode 100644 index f79259864..000000000 --- a/crates/test-assembly/crates/test_dynamic_sel/expected/apple-armv7.s +++ /dev/null @@ -1,325 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _get_sel - .p2align 2 - .code 32 -_get_sel: - movw r0, :lower16:(__MergedGlobals-(LPC0_0+8)) - movt r0, :upper16:(__MergedGlobals-(LPC0_0+8)) -LPC0_0: - add r0, pc, r0 - ldr r0, [r0] - cmp r0, #0 - bxne lr -LBB0_1: - movw r0, :lower16:(__MergedGlobals-(LPC0_1+8)) - movt r0, :upper16:(__MergedGlobals-(LPC0_1+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC0_2+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC0_2+8)) -LPC0_1: - add r0, pc, r0 -LPC0_2: - add r1, pc, r1 - b SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - - .globl _get_same_sel - .p2align 2 - .code 32 -_get_same_sel: - movw r2, :lower16:(__MergedGlobals-(LPC1_0+8)) - movt r2, :upper16:(__MergedGlobals-(LPC1_0+8)) -LPC1_0: - add r2, pc, r2 - ldr r0, [r2, #4] - cmp r0, #0 - bxne lr -LBB1_1: - movw r1, :lower16:(l_anon.[ID].0-(LPC1_1+8)) - add r0, r2, #4 - movt r1, :upper16:(l_anon.[ID].0-(LPC1_1+8)) -LPC1_1: - add r1, pc, r1 - b SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - - .globl _get_common_twice - .p2align 2 - .code 32 -_get_common_twice: - push {r4, r5, r7, lr} - add r7, sp, #8 - movw r5, :lower16:(LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC2_0+8)) - movt r5, :upper16:(LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC2_0+8)) -LPC2_0: - ldr r5, [pc, r5] - ldr r4, [r5] - cmp r4, #0 - beq LBB2_3 - ldr r1, [r5] - cmp r1, #0 - beq LBB2_4 -LBB2_2: - mov r0, r4 - pop {r4, r5, r7, pc} -LBB2_3: - movw r0, :lower16:(LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC2_1+8)) - movt r0, :upper16:(LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC2_1+8)) - movw r1, :lower16:(l_anon.[ID].1-(LPC2_2+8)) - movt r1, :upper16:(l_anon.[ID].1-(LPC2_2+8)) -LPC2_1: - ldr r0, [pc, r0] -LPC2_2: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r4, r0 - ldr r1, [r5] - cmp r1, #0 - bne LBB2_2 -LBB2_4: - movw r0, :lower16:(LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC2_3+8)) - movt r0, :upper16:(LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC2_3+8)) - movw r1, :lower16:(l_anon.[ID].1-(LPC2_4+8)) - movt r1, :upper16:(l_anon.[ID].1-(LPC2_4+8)) -LPC2_3: - ldr r0, [pc, r0] -LPC2_4: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r1, r0 - mov r0, r4 - pop {r4, r5, r7, pc} - - .globl _get_different_sel - .p2align 2 - .code 32 -_get_different_sel: - movw r2, :lower16:(__MergedGlobals-(LPC3_0+8)) - movt r2, :upper16:(__MergedGlobals-(LPC3_0+8)) -LPC3_0: - add r2, pc, r2 - ldr r0, [r2, #8] - cmp r0, #0 - bxne lr -LBB3_1: - movw r1, :lower16:(L_anon.[ID].2-(LPC3_1+8)) - add r0, r2, #8 - movt r1, :upper16:(L_anon.[ID].2-(LPC3_1+8)) -LPC3_1: - add r1, pc, r1 - b SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - - .globl _unused_sel - .p2align 2 - .code 32 -_unused_sel: - movw r0, :lower16:(SYM(test_dynamic_sel[CRATE_ID]::unused_sel::CACHED_SEL, 0)-(LPC4_0+8)) - movt r0, :upper16:(SYM(test_dynamic_sel[CRATE_ID]::unused_sel::CACHED_SEL, 0)-(LPC4_0+8)) -LPC4_0: - add r0, pc, r0 - ldr r0, [r0] - cmp r0, #0 - bxne lr -LBB4_1: - movw r0, :lower16:(SYM(test_dynamic_sel[CRATE_ID]::unused_sel::CACHED_SEL, 0)-(LPC4_1+8)) - movt r0, :upper16:(SYM(test_dynamic_sel[CRATE_ID]::unused_sel::CACHED_SEL, 0)-(LPC4_1+8)) - movw r1, :lower16:(l_anon.[ID].3-(LPC4_2+8)) - movt r1, :upper16:(l_anon.[ID].3-(LPC4_2+8)) -LPC4_1: - add r0, pc, r0 -LPC4_2: - add r1, pc, r1 - b SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - - .globl _use_fns - .p2align 2 - .code 32 -_use_fns: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10} - movw r10, :lower16:(__MergedGlobals-(LPC5_0+8)) - mov r4, r0 - movt r10, :upper16:(__MergedGlobals-(LPC5_0+8)) -LPC5_0: - add r10, pc, r10 - ldr r8, [r10] - cmp r8, #0 - beq LBB5_5 - ldr r6, [r10, #4] - cmp r6, #0 - beq LBB5_6 -LBB5_2: - ldr r5, [r10, #8] - cmp r5, #0 - beq LBB5_7 -LBB5_3: - ldr r0, [r10, #12] - cmp r0, #0 - beq LBB5_8 -LBB5_4: - str r8, [r4] - str r6, [r4, #4] - str r5, [r4, #8] - str r0, [r4, #12] - pop {r8, r10} - pop {r4, r5, r6, r7, pc} -LBB5_5: - movw r0, :lower16:(__MergedGlobals-(LPC5_1+8)) - movt r0, :upper16:(__MergedGlobals-(LPC5_1+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC5_2+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC5_2+8)) -LPC5_1: - add r0, pc, r0 -LPC5_2: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r8, r0 - ldr r6, [r10, #4] - cmp r6, #0 - bne LBB5_2 -LBB5_6: - movw r1, :lower16:(l_anon.[ID].0-(LPC5_3+8)) - add r0, r10, #4 - movt r1, :upper16:(l_anon.[ID].0-(LPC5_3+8)) -LPC5_3: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r6, r0 - ldr r5, [r10, #8] - cmp r5, #0 - bne LBB5_3 -LBB5_7: - movw r1, :lower16:(L_anon.[ID].2-(LPC5_4+8)) - add r0, r10, #8 - movt r1, :upper16:(L_anon.[ID].2-(LPC5_4+8)) -LPC5_4: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r5, r0 - ldr r0, [r10, #12] - cmp r0, #0 - bne LBB5_4 -LBB5_8: - movw r1, :lower16:(l_anon.[ID].4-(LPC5_5+8)) - add r0, r10, #12 - movt r1, :upper16:(l_anon.[ID].4-(LPC5_5+8)) -LPC5_5: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - b LBB5_4 - - .globl _use_same_twice - .p2align 2 - .code 32 -_use_same_twice: - push {r4, r5, r7, lr} - add r7, sp, #8 - push {r8} - movw r5, :lower16:(__MergedGlobals-(LPC6_0+8)) - mov r4, r0 - movt r5, :upper16:(__MergedGlobals-(LPC6_0+8)) -LPC6_0: - add r5, pc, r5 - ldr r8, [r5] - cmp r8, #0 - beq LBB6_3 - ldr r9, [r5] - cmp r9, #0 - beq LBB6_4 -LBB6_2: - strd r8, r9, [r4] - pop {r8} - pop {r4, r5, r7, pc} -LBB6_3: - movw r0, :lower16:(__MergedGlobals-(LPC6_1+8)) - movt r0, :upper16:(__MergedGlobals-(LPC6_1+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC6_2+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC6_2+8)) -LPC6_1: - add r0, pc, r0 -LPC6_2: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r8, r0 - ldr r9, [r5] - cmp r9, #0 - bne LBB6_2 -LBB6_4: - movw r0, :lower16:(__MergedGlobals-(LPC6_3+8)) - movt r0, :upper16:(__MergedGlobals-(LPC6_3+8)) - movw r1, :lower16:(l_anon.[ID].0-(LPC6_4+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC6_4+8)) -LPC6_3: - add r0, pc, r0 -LPC6_4: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r9, r0 - strd r8, r9, [r4] - pop {r8} - pop {r4, r5, r7, pc} - - .globl _use_in_loop - .p2align 2 - .code 32 -_use_in_loop: - cmp r0, #0 - bxeq lr -LBB7_1: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - movw r5, :lower16:(SYM(test_dynamic_sel[CRATE_ID]::use_in_loop::CACHED_SEL, 0)-(LPC7_0+8)) - mov r4, r0 - movt r5, :upper16:(SYM(test_dynamic_sel[CRATE_ID]::use_in_loop::CACHED_SEL, 0)-(LPC7_0+8)) - movw r6, :lower16:(l_anon.[ID].5-(LPC7_1+8)) - movt r6, :upper16:(l_anon.[ID].5-(LPC7_1+8)) -LPC7_0: - add r5, pc, r5 -LPC7_1: - add r6, pc, r6 - b LBB7_3 -LBB7_2: - subs r4, r4, #1 - beq LBB7_5 -LBB7_3: - ldr r0, [r5] - cmp r0, #0 - bne LBB7_2 - mov r0, r5 - mov r1, r6 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - b LBB7_2 -LBB7_5: - pop {r4, r5, r6, r7, lr} - bx lr - - .section __TEXT,__const -l_anon.[ID].0: - .asciz "simple" - -l_anon.[ID].1: - .asciz "alloc" - - .section __TEXT,__literal16,16byte_literals -L_anon.[ID].2: - .asciz "i:am:different:" - - .section __TEXT,__const -l_anon.[ID].3: - .asciz "unused" - -l_anon.[ID].4: - .asciz "fourthSel" - -l_anon.[ID].5: - .asciz "loopedSelector" - -.zerofill __DATA,__bss,SYM(test_dynamic_sel[CRATE_ID]::unused_sel::CACHED_SEL, 0),4,2 -.zerofill __DATA,__bss,SYM(test_dynamic_sel[CRATE_ID]::use_in_loop::CACHED_SEL, 0),4,2 -.zerofill __DATA,__bss,__MergedGlobals,16,2 - .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers - .p2align 2, 0x0 -LSYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr: - .indirect_symbol SYM(objc2::__macro_helpers::common_selectors::alloc_sel::CACHED_SEL::GENERATED_ID, 0) - .long 0 - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_extern_protocol/expected/apple-armv7.s b/crates/test-assembly/crates/test_extern_protocol/expected/apple-armv7.s deleted file mode 100644 index 1b23f82eb..000000000 --- a/crates/test-assembly/crates/test_extern_protocol/expected/apple-armv7.s +++ /dev/null @@ -1,61 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _get_protocol - .p2align 2 - .code 32 -_get_protocol: - movw r0, :lower16:(l_anon.[ID].0-(LPC0_0+8)) - mov r1, #10 - movt r0, :upper16:(l_anon.[ID].0-(LPC0_0+8)) -LPC0_0: - add r0, pc, r0 - b SYM(objc2::runtime::AnyProtocol::get::GENERATED_ID, 0) - - .globl _dyn_call - .p2align 2 - .code 32 -_dyn_call: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_17aa92881c42487f-(LPC1_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_17aa92881c42487f-(LPC1_0+8)) -LPC1_0: - ldr r1, [pc, r1] - b _objc_msgSend - - .globl _dyn_consume - .p2align 2 - .code 32 -_dyn_consume: - push {r4, r7, lr} - add r7, sp, #4 - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_17aa92881c42487f-(LPC2_0+8)) - mov r4, r0 - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_17aa92881c42487f-(LPC2_0+8)) -LPC2_0: - ldr r1, [pc, r1] - bl _objc_msgSend - mov r0, r4 - pop {r4, r7, lr} - b _objc_release - - .section __TEXT,__const -l_anon.[ID].0: - .ascii "MyProtocol" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_17aa92881c42487f -L_OBJC_METH_VAR_NAME_17aa92881c42487f: - .asciz "aMethod" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_17aa92881c42487f - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_17aa92881c42487f: - .long L_OBJC_METH_VAR_NAME_17aa92881c42487f - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_17aa92881c42487f - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_17aa92881c42487f: - .asciz "\000\000\000\000@\000\000" - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_fast_enumeration/expected/apple-armv7.s b/crates/test-assembly/crates/test_fast_enumeration/expected/apple-armv7.s deleted file mode 100644 index eb0a2597c..000000000 --- a/crates/test-assembly/crates/test_fast_enumeration/expected/apple-armv7.s +++ /dev/null @@ -1,322 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _iter_create - .p2align 2 - .code 32 -_iter_create: - vmov.i32 q8, #0x0 - mov r2, #0 - str r1, [r0] - add r1, r0, #80 - str r2, [r0, #100] - str r2, [r0, #104] - str r2, [r0, #72] - str r2, [r0, #76] - add r0, r0, #4 - vst1.32 {d16, d17}, [r0]! - vst1.32 {d16, d17}, [r0]! - vst1.32 {d16, d17}, [r0]! - vst1.32 {d16, d17}, [r1]! - vst1.32 {d16, d17}, [r0]! - str r2, [r1] - str r2, [r0] - bx lr - - .globl _iter_once - .p2align 2 - .code 32 -_iter_once: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8} - sub sp, sp, #4 - mov r4, r0 - ldrd r0, r1, [r0, #100] - cmp r0, r1 - blo LBB1_3 - ldr r6, [r4] - movw r0, :lower16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC1_0+8)) - movt r0, :upper16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC1_0+8)) - add r8, r4, #4 -LPC1_0: - ldr r0, [pc, r0] - add r5, r4, #68 - ldr r1, [r0] - cmp r1, #0 - beq LBB1_5 -LBB1_2: - mov r0, #16 - mov r2, r5 - str r0, [sp] - mov r0, r6 - mov r3, r8 - bl _objc_msgSend - mov r1, r0 - mov r0, #0 - cmp r1, #0 - strd r0, r1, [r4, #100] - beq LBB1_4 -LBB1_3: - ldr r1, [r4, #72] - add r2, r0, #1 - str r2, [r4, #100] - ldr r0, [r1, r0, lsl #2] -LBB1_4: - sub sp, r7, #16 - pop {r8} - pop {r4, r5, r6, r7, pc} -LBB1_5: - movw r1, :lower16:(l_anon.[ID].0-(LPC1_1+8)) - movt r1, :upper16:(l_anon.[ID].0-(LPC1_1+8)) -LPC1_1: - add r1, pc, r1 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r1, r0 - b LBB1_2 - - .globl _use_obj - .p2align 2 - .code 32 -_use_obj: - sub sp, sp, #4 - str r0, [sp] - mov r0, sp - @ InlineAsm Start - @ InlineAsm End - add sp, sp, #4 - bx lr - - .globl _iter - .p2align 2 - .code 32 -_iter: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10, r11} - sub sp, sp, #120 - bfc sp, #0, #3 - add r1, sp, #8 - vmov.i32 q8, #0x0 - orr r4, r1, #4 - add r2, r1, #80 - mov r6, r0 - mov r0, #0 - mov r5, r4 - vst1.64 {d16, d17}, [r2]! - mov r11, #16 - mov r1, #0 - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - str r0, [r2] - str r0, [r5] - str r0, [sp, #112] - str r0, [sp, #108] - str r0, [sp, #84] - str r0, [sp, #80] - str r6, [sp, #8] - movw r8, :lower16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC3_0+8)) - movt r8, :upper16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC3_0+8)) - movw r10, :lower16:(l_anon.[ID].0-(LPC3_1+8)) - movt r10, :upper16:(l_anon.[ID].0-(LPC3_1+8)) -LPC3_0: - ldr r8, [pc, r8] -LPC3_1: - add r10, pc, r10 - b LBB3_3 -LBB3_1: - mov r0, r6 - mov r2, r5 - mov r3, r4 - str r11, [sp] - bl _objc_msgSend - mov r1, #0 - cmp r0, #0 - str r0, [sp, #112] - beq LBB3_6 -LBB3_2: - ldr r0, [sp, #80] - add r2, r1, #1 - str r2, [sp, #108] - ldr r0, [r0, r1, lsl #2] - bl _use_obj - ldr r6, [sp, #8] - ldr r1, [sp, #108] - ldr r0, [sp, #112] -LBB3_3: - cmp r1, r0 - blo LBB3_2 - ldr r1, [r8] - cmp r1, #0 - bne LBB3_1 - mov r0, r8 - mov r1, r10 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r1, r0 - b LBB3_1 -LBB3_6: - sub sp, r7, #24 - pop {r8, r10, r11} - pop {r4, r5, r6, r7, pc} - - .globl _iter_noop - .p2align 2 - .code 32 -_iter_noop: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10, r11} - sub sp, sp, #120 - bfc sp, #0, #3 - add r1, sp, #8 - vmov.i32 q8, #0x0 - orr r4, r1, #4 - add r2, r1, #80 - mov r6, r0 - mov r0, #0 - mov r5, r4 - vst1.64 {d16, d17}, [r2]! - mov r11, #16 - mov r1, #0 - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - str r0, [r2] - str r0, [r5] - str r0, [sp, #112] - str r0, [sp, #108] - str r0, [sp, #84] - str r0, [sp, #80] - str r6, [sp, #8] - movw r8, :lower16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC4_0+8)) - movt r8, :upper16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC4_0+8)) - movw r10, :lower16:(l_anon.[ID].0-(LPC4_1+8)) - movt r10, :upper16:(l_anon.[ID].0-(LPC4_1+8)) -LPC4_0: - ldr r8, [pc, r8] -LPC4_1: - add r10, pc, r10 - b LBB4_2 -LBB4_1: - add r1, r1, #1 - str r1, [sp, #108] -LBB4_2: - cmp r1, r0 - blo LBB4_1 - ldr r1, [r8] - cmp r1, #0 - beq LBB4_6 -LBB4_4: - mov r0, r6 - mov r2, r5 - mov r3, r4 - str r11, [sp] - bl _objc_msgSend - cmp r0, #0 - str r0, [sp, #112] - beq LBB4_7 - ldr r6, [sp, #8] - mov r1, #0 - b LBB4_1 -LBB4_6: - mov r0, r8 - mov r1, r10 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r1, r0 - b LBB4_4 -LBB4_7: - sub sp, r7, #24 - pop {r8, r10, r11} - pop {r4, r5, r6, r7, pc} - - .globl _iter_retained - .p2align 2 - .code 32 -_iter_retained: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10, r11} - sub sp, sp, #120 - bfc sp, #0, #3 - add r1, sp, #8 - vmov.i32 q8, #0x0 - orr r4, r1, #4 - add r2, r1, #80 - mov r6, r0 - mov r0, #0 - mov r5, r4 - vst1.64 {d16, d17}, [r2]! - mov r11, #16 - mov r1, #0 - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - vst1.32 {d16, d17}, [r5]! - str r0, [r2] - str r0, [r5] - str r0, [sp, #112] - str r0, [sp, #108] - str r0, [sp, #84] - str r0, [sp, #80] - str r6, [sp, #8] - movw r10, :lower16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC5_0+8)) - movt r10, :upper16:(LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr-(LPC5_0+8)) - movw r8, :lower16:(l_anon.[ID].0-(LPC5_1+8)) - movt r8, :upper16:(l_anon.[ID].0-(LPC5_1+8)) -LPC5_0: - ldr r10, [pc, r10] -LPC5_1: - add r8, pc, r8 - b LBB5_3 -LBB5_1: - mov r0, r6 - mov r2, r5 - mov r3, r4 - str r11, [sp] - bl _objc_msgSend - mov r1, #0 - cmp r0, #0 - str r0, [sp, #112] - beq LBB5_6 -LBB5_2: - ldr r0, [sp, #80] - add r2, r1, #1 - str r2, [sp, #108] - ldr r0, [r0, r1, lsl #2] - bl _objc_retain - mov r6, r0 - bl _use_obj - mov r0, r6 - bl _objc_release - ldr r6, [sp, #8] - ldr r1, [sp, #108] - ldr r0, [sp, #112] -LBB5_3: - cmp r1, r0 - blo LBB5_2 - ldr r1, [r10] - cmp r1, #0 - bne LBB5_1 - mov r0, r10 - mov r1, r8 - bl SYM(objc2::__macro_helpers::cache::CachedSel::fetch::GENERATED_ID, 0) - mov r1, r0 - b LBB5_1 -LBB5_6: - sub sp, r7, #24 - pop {r8, r10, r11} - pop {r4, r5, r6, r7, pc} - - .section __TEXT,__const -l_anon.[ID].0: - .asciz "countByEnumeratingWithState:objects:count:" - - .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers - .p2align 2, 0x0 -LSYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0)$non_lazy_ptr: - .indirect_symbol SYM(icrate::generated::Foundation::__NSEnumerator::NSFastEnumeration::countByEnumeratingWithState_objects_count::CACHED_SEL::GENERATED_ID, 0) - .long 0 - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_msg_send_error/expected/apple-armv7.s b/crates/test-assembly/crates/test_msg_send_error/expected/apple-armv7.s deleted file mode 100644 index aa80c3e62..000000000 --- a/crates/test-assembly/crates/test_msg_send_error/expected/apple-armv7.s +++ /dev/null @@ -1,227 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .p2align 2 - .code 32 -SYM(objc2[CRATE_ID]::__macro_helpers::msg_send_id::encountered_error::, 0): - push {r4, r7, lr} - add r7, sp, #4 - mov r4, r1 - bl _objc_retain - cmp r0, #0 - popne {r4, r7, pc} -LBB0_1: - movw r0, :lower16:(l_anon.[ID].0-(LPC0_0+8)) - mov r1, #56 - movt r0, :upper16:(l_anon.[ID].0-(LPC0_0+8)) - mov r2, r4 -LPC0_0: - add r0, pc, r0 - mov lr, pc - b SYM(core::option::expect_failed::GENERATED_ID, 0) - - .p2align 2 - .code 32 -SYM(objc2[CRATE_ID]::__macro_helpers::msg_send::encountered_error::, 0): - push {r7, lr} - mov r7, sp - bl _objc_retain - cmp r0, #0 - popne {r7, pc} -LBB1_1: - movw r0, :lower16:(l_anon.[ID].1-(LPC1_0+8)) - mov r1, #54 - movt r0, :upper16:(l_anon.[ID].1-(LPC1_0+8)) - movw r2, :lower16:(l_anon.[ID].3-(LPC1_1+8)) - movt r2, :upper16:(l_anon.[ID].3-(LPC1_1+8)) -LPC1_0: - add r0, pc, r0 -LPC1_1: - add r2, pc, r2 - mov lr, pc - b SYM(core::option::expect_failed::GENERATED_ID, 0) - - .globl _error_bool - .p2align 2 - .code 32 -_error_bool: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r4, #0 - mov r3, sp - str r4, [sp] - bl _objc_msgSend - cmp r0, #0 - beq LBB2_2 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} -LBB2_2: - ldr r0, [sp] - bl SYM(objc2[CRATE_ID]::__macro_helpers::msg_send::encountered_error::, 0) - mov r4, r0 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _error_new - .p2align 2 - .code 32 -_error_new: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r4, #0 - mov r2, sp - str r4, [sp] - bl _objc_msgSend - mov r1, r0 - cmp r0, #0 - beq LBB3_2 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} -LBB3_2: - ldr r0, [sp] - movw r1, :lower16:(l_anon.[ID].4-(LPC3_0+8)) - movt r1, :upper16:(l_anon.[ID].4-(LPC3_0+8)) -LPC3_0: - add r1, pc, r1 - bl SYM(objc2[CRATE_ID]::__macro_helpers::msg_send_id::encountered_error::, 0) - mov r1, r0 - mov r4, #1 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _error_init - .p2align 2 - .code 32 -_error_init: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r4, #0 - mov r2, sp - str r4, [sp] - bl _objc_msgSend - mov r1, r0 - cmp r0, #0 - beq LBB4_2 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} -LBB4_2: - ldr r0, [sp] - movw r1, :lower16:(l_anon.[ID].5-(LPC4_0+8)) - movt r1, :upper16:(l_anon.[ID].5-(LPC4_0+8)) -LPC4_0: - add r1, pc, r1 - bl SYM(objc2[CRATE_ID]::__macro_helpers::msg_send_id::encountered_error::, 0) - mov r1, r0 - mov r4, #1 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _error_copy - .p2align 2 - .code 32 -_error_copy: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r4, #0 - mov r2, sp - str r4, [sp] - bl _objc_msgSend - mov r1, r0 - cmp r0, #0 - beq LBB5_2 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} -LBB5_2: - ldr r0, [sp] - movw r1, :lower16:(l_anon.[ID].6-(LPC5_0+8)) - movt r1, :upper16:(l_anon.[ID].6-(LPC5_0+8)) -LPC5_0: - add r1, pc, r1 - bl SYM(objc2[CRATE_ID]::__macro_helpers::msg_send_id::encountered_error::, 0) - mov r1, r0 - mov r4, #1 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _error_autoreleased - .p2align 2 - .code 32 -_error_autoreleased: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r4, #0 - mov r2, sp - str r4, [sp] - bl _objc_msgSend - @ InlineAsm Start - mov r7, r7 - @ InlineAsm End - bl _objc_retainAutoreleasedReturnValue - mov r1, r0 - cmp r0, #0 - beq LBB6_2 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} -LBB6_2: - ldr r0, [sp] - movw r1, :lower16:(l_anon.[ID].7-(LPC6_0+8)) - movt r1, :upper16:(l_anon.[ID].7-(LPC6_0+8)) -LPC6_0: - add r1, pc, r1 - bl SYM(objc2[CRATE_ID]::__macro_helpers::msg_send_id::encountered_error::, 0) - mov r1, r0 - mov r4, #1 - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .section __TEXT,__const -l_anon.[ID].0: - .ascii "error parameter should be set if the method returns NULL" - -l_anon.[ID].1: - .ascii "error parameter should be set if the method returns NO" - -l_anon.[ID].2: - .ascii "crates/$DIR/lib.rs" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].3: - .long l_anon.[ID].2 - .asciz "6\000\000\000\n\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].4: - .long l_anon.[ID].2 - .asciz "6\000\000\000\017\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].5: - .long l_anon.[ID].2 - .asciz "6\000\000\000\026\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].6: - .long l_anon.[ID].2 - .asciz "6\000\000\000\033\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].7: - .long l_anon.[ID].2 - .asciz "6\000\000\000 \000\000\000\005\000\000" - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_msg_send_id/expected/apple-armv7.s b/crates/test-assembly/crates/test_msg_send_id/expected/apple-armv7.s deleted file mode 100644 index d12a29fcd..000000000 --- a/crates/test-assembly/crates/test_msg_send_id/expected/apple-armv7.s +++ /dev/null @@ -1,205 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _handle_new - .p2align 2 - .code 32 -_handle_new: - b _objc_msgSend - - .globl _handle_new_fallible - .p2align 2 - .code 32 -_handle_new_fallible: - push {r4, r5, r7, lr} - add r7, sp, #8 - mov r4, r1 - mov r5, r0 - bl _objc_msgSend - cmp r0, #0 - popne {r4, r5, r7, pc} -LBB1_1: - movw r2, :lower16:(l_anon.[ID].1-(LPC1_0+8)) - mov r0, r5 - movt r2, :upper16:(l_anon.[ID].1-(LPC1_0+8)) - mov r1, r4 -LPC1_0: - add r2, pc, r2 - mov lr, pc - b SYM( as objc2::__macro_helpers::msg_send_id::MsgSendIdFailed>::failed::GENERATED_ID, 0) - - .globl _handle_alloc - .p2align 2 - .code 32 -_handle_alloc: - b _objc_msgSend - - .globl _handle_init - .p2align 2 - .code 32 -_handle_init: - b _objc_msgSend - - .globl _handle_init_fallible - .p2align 2 - .code 32 -_handle_init_fallible: - push {r4, r5, r7, lr} - add r7, sp, #8 - mov r4, r1 - mov r5, r0 - bl _objc_msgSend - cmp r0, #0 - popne {r4, r5, r7, pc} -LBB4_1: - movw r2, :lower16:(l_anon.[ID].2-(LPC4_0+8)) - mov r0, r5 - movt r2, :upper16:(l_anon.[ID].2-(LPC4_0+8)) - mov r1, r4 -LPC4_0: - add r2, pc, r2 - mov lr, pc - b SYM( as objc2::__macro_helpers::msg_send_id::MsgSendIdFailed>::failed::GENERATED_ID, 0) - - .globl _handle_alloc_init - .p2align 2 - .code 32 -_handle_alloc_init: - push {r4, r7, lr} - add r7, sp, #4 - mov r4, r2 - bl _objc_msgSend - mov r1, r4 - pop {r4, r7, lr} - b _objc_msgSend - - .globl _handle_alloc_release - .p2align 2 - .code 32 -_handle_alloc_release: - push {r7, lr} - mov r7, sp - bl _objc_msgSend - pop {r7, lr} - b _objc_release - - .globl _handle_alloc_init_release - .p2align 2 - .code 32 -_handle_alloc_init_release: - push {r4, r7, lr} - add r7, sp, #4 - mov r4, r2 - bl _objc_msgSend - mov r1, r4 - bl _objc_msgSend - pop {r4, r7, lr} - b _objc_release - - .globl _handle_copy - .p2align 2 - .code 32 -_handle_copy: - b _objc_msgSend - - .globl _handle_copy_fallible - .p2align 2 - .code 32 -_handle_copy_fallible: - push {r7, lr} - mov r7, sp - bl _objc_msgSend - cmp r0, #0 - popne {r7, pc} -LBB9_1: - movw r0, :lower16:(l_anon.[ID].3-(LPC9_0+8)) - movt r0, :upper16:(l_anon.[ID].3-(LPC9_0+8)) -LPC9_0: - add r0, pc, r0 - mov lr, pc - b SYM( as objc2::__macro_helpers::msg_send_id::MsgSendIdFailed>::failed::GENERATED_ID, 0) - - .globl _handle_autoreleased - .p2align 2 - .code 32 -_handle_autoreleased: - push {r7, lr} - mov r7, sp - bl _objc_msgSend - @ InlineAsm Start - mov r7, r7 - @ InlineAsm End - pop {r7, lr} - b _objc_retainAutoreleasedReturnValue - - .globl _handle_autoreleased_fallible - .p2align 2 - .code 32 -_handle_autoreleased_fallible: - push {r4, r5, r7, lr} - add r7, sp, #8 - mov r4, r1 - mov r5, r0 - bl _objc_msgSend - @ InlineAsm Start - mov r7, r7 - @ InlineAsm End - bl _objc_retainAutoreleasedReturnValue - cmp r0, #0 - popne {r4, r5, r7, pc} -LBB11_1: - movw r2, :lower16:(l_anon.[ID].4-(LPC11_0+8)) - mov r0, r5 - movt r2, :upper16:(l_anon.[ID].4-(LPC11_0+8)) - mov r1, r4 -LPC11_0: - add r2, pc, r2 - mov lr, pc - b SYM( as objc2::__macro_helpers::msg_send_id::MsgSendIdFailed>::failed::GENERATED_ID, 0) - - .globl _handle_with_out_param - .p2align 2 - .code 32 -_handle_with_out_param: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - mov r4, r2 - ldr r5, [r2] - bl _objc_msgSend - mov r6, r0 - ldr r0, [r4] - bl _objc_retain - mov r0, r5 - bl _objc_release - @ InlineAsm Start - mov r7, r7 - @ InlineAsm End - mov r0, r6 - pop {r4, r5, r6, r7, lr} - b _objc_retainAutoreleasedReturnValue - - .section __TEXT,__const -l_anon.[ID].0: - .ascii "crates/$DIR/lib.rs" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].1: - .long l_anon.[ID].0 - .asciz "3\000\000\000\r\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].2: - .long l_anon.[ID].0 - .asciz "3\000\000\000\034\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].3: - .long l_anon.[ID].0 - .asciz "3\000\000\0008\000\000\000\005\000\000" - - .p2align 2, 0x0 -l_anon.[ID].4: - .long l_anon.[ID].0 - .asciz "3\000\000\000B\000\000\000\005\000\000" - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s b/crates/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s deleted file mode 100644 index 80a9cd68f..000000000 --- a/crates/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s +++ /dev/null @@ -1,187 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _handle_with_sel - .p2align 2 - .code 32 -_handle_with_sel: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_ad1b815073641351-(LPC0_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_ad1b815073641351-(LPC0_0+8)) -LPC0_0: - ldr r1, [pc, r1] - b _objc_msgSend - - .globl _handle_alloc_init - .p2align 2 - .code 32 -_handle_alloc_init: - push {r4, r5, r7, lr} - add r7, sp, #8 - movw r1, :lower16:(LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr-(LPC1_0+8)) - movt r1, :upper16:(LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr-(LPC1_0+8)) - movw r2, :lower16:(LL_OBJC_SELECTOR_REFERENCES_alloc$non_lazy_ptr-(LPC1_1+8)) - movt r2, :upper16:(LL_OBJC_SELECTOR_REFERENCES_alloc$non_lazy_ptr-(LPC1_1+8)) -LPC1_0: - ldr r1, [pc, r1] -LPC1_1: - ldr r2, [pc, r2] - ldr r4, [r1] - ldr r1, [r2] - bl _objc_msgSend - mov r1, r4 - mov r5, r0 - bl _objc_msgSend - cmp r0, #0 - popne {r4, r5, r7, pc} -LBB1_1: - movw r2, :lower16:(l_anon.[ID].1-(LPC1_2+8)) - mov r0, r5 - movt r2, :upper16:(l_anon.[ID].1-(LPC1_2+8)) - mov r1, r4 -LPC1_2: - add r2, pc, r2 - mov lr, pc - b SYM( as objc2::__macro_helpers::msg_send_id::MsgSendIdFailed>::failed::GENERATED_ID, 0) - - .globl _use_generic - .p2align 2 - .code 32 -_use_generic: - push {r4, r7, lr} - add r7, sp, #4 - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05-(LPC2_0+8)) - mov r4, r0 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05-(LPC2_0+8)) -LPC2_0: - ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_1f1c7bd8029c3138-(LPC2_1+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_1f1c7bd8029c3138-(LPC2_1+8)) -LPC2_1: - ldr r1, [pc, r1] - bl _objc_msgSend - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05-(LPC2_2+8)) - mov r0, r4 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05-(LPC2_2+8)) -LPC2_2: - ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_eb5b4d2de37744da-(LPC2_3+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_eb5b4d2de37744da-(LPC2_3+8)) -LPC2_3: - ldr r1, [pc, r1] - bl _objc_msgSend - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05-(LPC2_4+8)) - mov r0, r4 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05-(LPC2_4+8)) -LPC2_4: - ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_c76827c00227cd8a-(LPC2_5+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_c76827c00227cd8a-(LPC2_5+8)) -LPC2_5: - ldr r1, [pc, r1] - pop {r4, r7, lr} - b _objc_msgSend - - .section __TEXT,__const -l_anon.[ID].0: - .ascii "crates/$DIR/lib.rs" - - .section __DATA,__const - .p2align 2, 0x0 -l_anon.[ID].1: - .long l_anon.[ID].0 - .asciz ";\000\000\000\016\000\000\000\005\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_ad1b815073641351 -L_OBJC_METH_VAR_NAME_ad1b815073641351: - .asciz "someSelector" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_ad1b815073641351 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_ad1b815073641351: - .long L_OBJC_METH_VAR_NAME_ad1b815073641351 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_ad1b815073641351 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_ad1b815073641351: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5ace898e385eba05 -L_OBJC_METH_VAR_NAME_5ace898e385eba05: - .asciz "generic:selector:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_5ace898e385eba05: - .long L_OBJC_METH_VAR_NAME_5ace898e385eba05 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_5ace898e385eba05 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_5ace898e385eba05: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_1f1c7bd8029c3138 -L_OBJC_METH_VAR_NAME_1f1c7bd8029c3138: - .asciz "performSelector:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_1f1c7bd8029c3138 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_1f1c7bd8029c3138: - .long L_OBJC_METH_VAR_NAME_1f1c7bd8029c3138 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_1f1c7bd8029c3138 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_1f1c7bd8029c3138: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_eb5b4d2de37744da -L_OBJC_METH_VAR_NAME_eb5b4d2de37744da: - .asciz "performSelector:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_eb5b4d2de37744da - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_eb5b4d2de37744da: - .long L_OBJC_METH_VAR_NAME_eb5b4d2de37744da - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_eb5b4d2de37744da - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_eb5b4d2de37744da: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_c76827c00227cd8a -L_OBJC_METH_VAR_NAME_c76827c00227cd8a: - .asciz "performSelector:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_c76827c00227cd8a - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_c76827c00227cd8a: - .long L_OBJC_METH_VAR_NAME_c76827c00227cd8a - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_c76827c00227cd8a - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_c76827c00227cd8a: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers - .p2align 2, 0x0 -LL_OBJC_SELECTOR_REFERENCES_alloc$non_lazy_ptr: - .indirect_symbol L_OBJC_SELECTOR_REFERENCES_alloc - .long 0 -LL_OBJC_SELECTOR_REFERENCES_init$non_lazy_ptr: - .indirect_symbol L_OBJC_SELECTOR_REFERENCES_init - .long 0 - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_msg_send_zero_cost/expected/apple-armv7.s b/crates/test-assembly/crates/test_msg_send_zero_cost/expected/apple-armv7.s deleted file mode 100644 index cbaf97ee9..000000000 --- a/crates/test-assembly/crates/test_msg_send_zero_cost/expected/apple-armv7.s +++ /dev/null @@ -1,30 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _handle - .p2align 2 - .code 32 -_handle: - b _objc_msgSend - - .globl _handle_with_sel - .p2align 2 - .code 32 -_handle_with_sel: - movw r1, :lower16:(_SEL_REF-(LPC1_0+8)) - movt r1, :upper16:(_SEL_REF-(LPC1_0+8)) -LPC1_0: - ldr r1, [pc, r1] - b _objc_msgSend - - .section __TEXT,__const - .globl _SEL -_SEL: - .asciz "someSelector" - - .section __DATA,__const - .globl _SEL_REF - .p2align 2, 0x0 -_SEL_REF: - .long _SEL - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_ns_string/expected/apple-armv7.s b/crates/test-assembly/crates/test_ns_string/expected/apple-armv7.s deleted file mode 100644 index affe294c2..000000000 --- a/crates/test-assembly/crates/test_ns_string/expected/apple-armv7.s +++ /dev/null @@ -1,122 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _get_ascii - .p2align 2 - .code 32 -_get_ascii: - movw r0, :lower16:(SYM(test_ns_string[CRATE_ID]::get_ascii::CFSTRING, 0)-(LPC0_0+8)) - movt r0, :upper16:(SYM(test_ns_string[CRATE_ID]::get_ascii::CFSTRING, 0)-(LPC0_0+8)) -LPC0_0: - add r0, pc, r0 - bx lr - - .globl _get_utf16 - .p2align 2 - .code 32 -_get_utf16: - movw r0, :lower16:(SYM(test_ns_string[CRATE_ID]::get_utf16::CFSTRING, 0)-(LPC1_0+8)) - movt r0, :upper16:(SYM(test_ns_string[CRATE_ID]::get_utf16::CFSTRING, 0)-(LPC1_0+8)) -LPC1_0: - add r0, pc, r0 - bx lr - - .globl _get_with_nul - .p2align 2 - .code 32 -_get_with_nul: - movw r0, :lower16:(SYM(test_ns_string[CRATE_ID]::get_with_nul::CFSTRING, 0)-(LPC2_0+8)) - movt r0, :upper16:(SYM(test_ns_string[CRATE_ID]::get_with_nul::CFSTRING, 0)-(LPC2_0+8)) -LPC2_0: - add r0, pc, r0 - bx lr - - .section __DATA,__const - .globl _EMPTY - .p2align 2, 0x0 -_EMPTY: - .long SYM(test_ns_string[CRATE_ID]::EMPTY::CFSTRING, 0) - - .globl _XYZ - .p2align 2, 0x0 -_XYZ: - .long SYM(test_ns_string[CRATE_ID]::XYZ::CFSTRING, 0) - - .section __TEXT,__cstring,cstring_literals - .globl SYM(test_ns_string[CRATE_ID]::EMPTY::ASCII, 0) -SYM(test_ns_string[CRATE_ID]::EMPTY::ASCII, 0): - .space 1 - - .section __TEXT,__ustring - .globl SYM(test_ns_string[CRATE_ID]::EMPTY::UTF16, 0) - .p2align 1, 0x0 -SYM(test_ns_string[CRATE_ID]::EMPTY::UTF16, 0): - .space 2 - - .section __DATA,__cfstring - .globl SYM(test_ns_string[CRATE_ID]::EMPTY::CFSTRING, 0) - .p2align 2, 0x0 -SYM(test_ns_string[CRATE_ID]::EMPTY::CFSTRING, 0): - .long ___CFConstantStringClassReference - .asciz "\310\007\000" - .long SYM(test_ns_string[CRATE_ID]::EMPTY::ASCII, 0) - .space 4 - - .section __TEXT,__cstring,cstring_literals - .globl SYM(test_ns_string[CRATE_ID]::XYZ::ASCII, 0) -SYM(test_ns_string[CRATE_ID]::XYZ::ASCII, 0): - .asciz "xyz" - - .section __TEXT,__ustring - .globl SYM(test_ns_string[CRATE_ID]::XYZ::UTF16, 0) - .p2align 1, 0x0 -SYM(test_ns_string[CRATE_ID]::XYZ::UTF16, 0): - .asciz "x\000y\000z\000\000" - - .section __DATA,__cfstring - .globl SYM(test_ns_string[CRATE_ID]::XYZ::CFSTRING, 0) - .p2align 2, 0x0 -SYM(test_ns_string[CRATE_ID]::XYZ::CFSTRING, 0): - .long ___CFConstantStringClassReference - .asciz "\310\007\000" - .long SYM(test_ns_string[CRATE_ID]::XYZ::ASCII, 0) - .asciz "\003\000\000" - - .section __TEXT,__cstring,cstring_literals -SYM(test_ns_string[CRATE_ID]::get_ascii::ASCII, 0): - .asciz "abc" - - .section __DATA,__cfstring - .p2align 2, 0x0 -SYM(test_ns_string[CRATE_ID]::get_ascii::CFSTRING, 0): - .long ___CFConstantStringClassReference - .asciz "\310\007\000" - .long SYM(test_ns_string[CRATE_ID]::get_ascii::ASCII, 0) - .asciz "\003\000\000" - - .section __TEXT,__ustring - .p2align 1, 0x0 -SYM(test_ns_string[CRATE_ID]::get_utf16::UTF16, 0): - .asciz "\341\000b\000\007\001\000" - - .section __DATA,__cfstring - .p2align 2, 0x0 -SYM(test_ns_string[CRATE_ID]::get_utf16::CFSTRING, 0): - .long ___CFConstantStringClassReference - .asciz "\320\007\000" - .long SYM(test_ns_string[CRATE_ID]::get_utf16::UTF16, 0) - .asciz "\003\000\000" - - .section __TEXT,__ustring - .p2align 1, 0x0 -SYM(test_ns_string[CRATE_ID]::get_with_nul::UTF16, 0): - .asciz "a\000\000\000b\000\000\000c\000\000\000\000" - - .section __DATA,__cfstring - .p2align 2, 0x0 -SYM(test_ns_string[CRATE_ID]::get_with_nul::CFSTRING, 0): - .long ___CFConstantStringClassReference - .asciz "\320\007\000" - .long SYM(test_ns_string[CRATE_ID]::get_with_nul::UTF16, 0) - .asciz "\006\000\000" - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_out_parameters/expected/apple-armv7.s b/crates/test-assembly/crates/test_out_parameters/expected/apple-armv7.s deleted file mode 100644 index 4388893c3..000000000 --- a/crates/test-assembly/crates/test_out_parameters/expected/apple-armv7.s +++ /dev/null @@ -1,227 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _nonnull_nonnull - .p2align 2 - .code 32 -_nonnull_nonnull: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - mov r4, r2 - ldr r5, [r2] - bl _objc_msgSend - mov r6, r0 - ldr r0, [r4] - bl _objc_retain - mov r0, r5 - bl _objc_release - mov r0, r6 - pop {r4, r5, r6, r7, pc} - - .globl _null_nonnull - .p2align 2 - .code 32 -_null_nonnull: - cmp r2, #0 - beq LBB1_2 - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - mov r4, r2 - ldr r5, [r2] - bl _objc_msgSend - mov r6, r0 - ldr r0, [r4] - bl _objc_retain - mov r0, r5 - bl _objc_release - mov r0, r6 - pop {r4, r5, r6, r7, pc} -LBB1_2: - mov r2, #0 - b _objc_msgSend - - .globl _nonnull_null - .p2align 2 - .code 32 -_nonnull_null: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - mov r6, r2 - ldr r4, [r2] - bl _objc_msgSend - mov r5, r0 - ldr r0, [r6] - bl _objc_retain - cmp r4, #0 - beq LBB2_2 - mov r0, r4 - bl _objc_release -LBB2_2: - mov r0, r5 - pop {r4, r5, r6, r7, pc} - - .globl _null_null - .p2align 2 - .code 32 -_null_null: - cmp r2, #0 - beq LBB3_4 - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - mov r6, r2 - ldr r4, [r2] - bl _objc_msgSend - mov r5, r0 - ldr r0, [r6] - bl _objc_retain - cmp r4, #0 - beq LBB3_3 - mov r0, r4 - bl _objc_release -LBB3_3: - mov r0, r5 - pop {r4, r5, r6, r7, pc} -LBB3_4: - mov r2, #0 - b _objc_msgSend - - .globl _two_nonnull_nonnull - .p2align 2 - .code 32 -_two_nonnull_nonnull: - push {r4, r5, r6, r7, lr} - add r7, sp, #12 - push {r8, r10} - mov r4, r3 - mov r5, r2 - ldr r8, [r3] - ldr r6, [r2] - bl _objc_msgSend - mov r10, r0 - ldr r0, [r5] - bl _objc_retain - mov r0, r6 - bl _objc_release - ldr r0, [r4] - bl _objc_retain - mov r0, r8 - bl _objc_release - mov r0, r10 - pop {r8, r10} - pop {r4, r5, r6, r7, pc} - - .globl _call_with_none1 - .p2align 2 - .code 32 -_call_with_none1: - mov r2, #0 - b _objc_msgSend - - .globl _call_with_none2 - .p2align 2 - .code 32 -_call_with_none2: - mov r2, #0 - b _objc_msgSend - - .globl _call_with_none3 - .p2align 2 - .code 32 -_call_with_none3: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r2, #0 - str r2, [sp] - mov r2, sp - bl _objc_msgSend - mov r4, r0 - ldr r0, [sp] - bl _objc_retain - ldr r1, [sp] - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _call_with_none4 - .p2align 2 - .code 32 -_call_with_none4: - push {r4, r7, lr} - add r7, sp, #4 - sub sp, sp, #4 - mov r2, #0 - str r2, [sp] - mov r2, sp - bl _objc_msgSend - mov r4, r0 - ldr r0, [sp] - bl _objc_retain - ldr r1, [sp] - mov r0, r4 - sub sp, r7, #4 - pop {r4, r7, pc} - - .globl _call_with_some1 - .p2align 2 - .code 32 -_call_with_some1: - push {r4, r5, r7, lr} - add r7, sp, #8 - sub sp, sp, #4 - mov r4, r2 - str r2, [sp] - mov r2, sp - bl _objc_msgSend - mov r5, r0 - ldr r0, [sp] - bl _objc_retain - mov r0, r4 - bl _objc_release - ldr r1, [sp] - mov r0, r5 - sub sp, r7, #8 - pop {r4, r5, r7, pc} - - .globl _call_with_some2 - .p2align 2 - .code 32 -_call_with_some2: - push {r4, r5, r7, lr} - add r7, sp, #8 - sub sp, sp, #4 - mov r4, r2 - str r2, [sp] - mov r2, sp - bl _objc_msgSend - mov r5, r0 - ldr r0, [sp] - bl _objc_retain - mov r0, r4 - bl _objc_release - ldr r1, [sp] - mov r0, r5 - sub sp, r7, #8 - pop {r4, r5, r7, pc} - - .globl _call_with_some3 - .p2align 2 - .code 32 -_call_with_some3: - push {r4, r5, r7, lr} - add r7, sp, #8 - sub sp, sp, #4 - mov r4, r2 - str r2, [sp] - mov r2, sp - bl _objc_msgSend - mov r5, r0 - ldr r0, [sp] - bl _objc_retain - mov r0, r4 - bl _objc_release - ldr r1, [sp] - mov r0, r5 - sub sp, r7, #8 - pop {r4, r5, r7, pc} - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_retain_autoreleased/expected/apple-armv7.s b/crates/test-assembly/crates/test_retain_autoreleased/expected/apple-armv7.s deleted file mode 100644 index c02cca05f..000000000 --- a/crates/test-assembly/crates/test_retain_autoreleased/expected/apple-armv7.s +++ /dev/null @@ -1,16 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _handle - .p2align 2 - .code 32 -_handle: - push {r7, lr} - mov r7, sp - bl _objc_msgSend - @ InlineAsm Start - mov r7, r7 - @ InlineAsm End - pop {r7, lr} - b _objc_retainAutoreleasedReturnValue - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_static_class/expected/apple-armv7.s b/crates/test-assembly/crates/test_static_class/expected/apple-armv7.s deleted file mode 100644 index 1e762516a..000000000 --- a/crates/test-assembly/crates/test_static_class/expected/apple-armv7.s +++ /dev/null @@ -1,154 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _get_class - .p2align 2 - .code 32 -_get_class: - movw r0, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777-(LPC0_0+8)) - movt r0, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777-(LPC0_0+8)) -LPC0_0: - ldr r0, [pc, r0] - bx lr - - .globl _get_same_class - .p2align 2 - .code 32 -_get_same_class: - movw r0, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_2fe1990982915f07-(LPC1_0+8)) - movt r0, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_2fe1990982915f07-(LPC1_0+8)) -LPC1_0: - ldr r0, [pc, r0] - bx lr - - .globl _get_different_class - .p2align 2 - .code 32 -_get_different_class: - movw r0, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_dfff3a06c0bf722b-(LPC2_0+8)) - movt r0, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_dfff3a06c0bf722b-(LPC2_0+8)) -LPC2_0: - ldr r0, [pc, r0] - bx lr - - .globl _unused_class - .p2align 2 - .code 32 -_unused_class: - bx lr - - .globl _use_fns - .p2align 2 - .code 32 -_use_fns: - movw r9, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_97e6a8c6ed5db063-(LPC4_0+8)) - movt r9, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_97e6a8c6ed5db063-(LPC4_0+8)) -LPC4_0: - ldr r9, [pc, r9] - movw r2, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_dfff3a06c0bf722b-(LPC4_1+8)) - movt r2, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_dfff3a06c0bf722b-(LPC4_1+8)) -LPC4_1: - ldr r2, [pc, r2] - movw r3, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_2fe1990982915f07-(LPC4_2+8)) - movt r3, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_2fe1990982915f07-(LPC4_2+8)) -LPC4_2: - ldr r3, [pc, r3] - movw r1, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777-(LPC4_3+8)) - movt r1, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777-(LPC4_3+8)) - str r2, [r0, #8] -LPC4_3: - ldr r1, [pc, r1] - str r9, [r0, #12] - stm r0, {r1, r3} - bx lr - - .globl _use_same_twice - .p2align 2 - .code 32 -_use_same_twice: - movw r1, :lower16:(L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777-(LPC5_0+8)) - movt r1, :upper16:(L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777-(LPC5_0+8)) -LPC5_0: - ldr r1, [pc, r1] - str r1, [r0] - str r1, [r0, #4] - bx lr - - .globl _use_in_loop - .p2align 2 - .code 32 -_use_in_loop: - bx lr - - .section __DATA,__objc_classrefs,regular,no_dead_strip - .globl L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777 - .p2align 2, 0x0 -L_OBJC_CLASSLIST_REFERENCES_$_928cf03fcc497777: - .long _OBJC_CLASS_$_NSObject - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_928cf03fcc497777 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_928cf03fcc497777: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__objc_classrefs,regular,no_dead_strip - .globl L_OBJC_CLASSLIST_REFERENCES_$_2fe1990982915f07 - .p2align 2, 0x0 -L_OBJC_CLASSLIST_REFERENCES_$_2fe1990982915f07: - .long _OBJC_CLASS_$_NSObject - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_2fe1990982915f07 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_2fe1990982915f07: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__objc_classrefs,regular,no_dead_strip - .globl L_OBJC_CLASSLIST_REFERENCES_$_dfff3a06c0bf722b - .p2align 2, 0x0 -L_OBJC_CLASSLIST_REFERENCES_$_dfff3a06c0bf722b: - .long _OBJC_CLASS_$_NSString - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_dfff3a06c0bf722b - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_dfff3a06c0bf722b: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__objc_classrefs,regular,no_dead_strip - .globl L_OBJC_CLASSLIST_REFERENCES_$_ea6fbcf172f7f513 - .p2align 2, 0x0 -L_OBJC_CLASSLIST_REFERENCES_$_ea6fbcf172f7f513: - .long _OBJC_CLASS_$_NSData - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_ea6fbcf172f7f513 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_ea6fbcf172f7f513: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__objc_classrefs,regular,no_dead_strip - .globl L_OBJC_CLASSLIST_REFERENCES_$_97e6a8c6ed5db063 - .p2align 2, 0x0 -L_OBJC_CLASSLIST_REFERENCES_$_97e6a8c6ed5db063: - .long _OBJC_CLASS_$_NSException - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_97e6a8c6ed5db063 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_97e6a8c6ed5db063: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__objc_classrefs,regular,no_dead_strip - .globl L_OBJC_CLASSLIST_REFERENCES_$_bb5b616899716c0d - .p2align 2, 0x0 -L_OBJC_CLASSLIST_REFERENCES_$_bb5b616899716c0d: - .long _OBJC_CLASS_$_NSLock - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_bb5b616899716c0d - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_bb5b616899716c0d: - .asciz "\000\000\000\000@\000\000" - -.subsections_via_symbols diff --git a/crates/test-assembly/crates/test_static_sel/expected/apple-armv7.s b/crates/test-assembly/crates/test_static_sel/expected/apple-armv7.s deleted file mode 100644 index 80130f28f..000000000 --- a/crates/test-assembly/crates/test_static_sel/expected/apple-armv7.s +++ /dev/null @@ -1,202 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .syntax unified - .globl _get_sel - .p2align 2 - .code 32 -_get_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-(LPC0_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-(LPC0_0+8)) -LPC0_0: - ldr r0, [pc, r0] - bx lr - - .globl _get_same_sel - .p2align 2 - .code 32 -_get_same_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-(LPC1_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-(LPC1_0+8)) -LPC1_0: - ldr r0, [pc, r0] - bx lr - - .globl _get_common_twice - .p2align 2 - .code 32 -_get_common_twice: - movw r0, :lower16:(LL_OBJC_SELECTOR_REFERENCES_alloc$non_lazy_ptr-(LPC2_0+8)) - movt r0, :upper16:(LL_OBJC_SELECTOR_REFERENCES_alloc$non_lazy_ptr-(LPC2_0+8)) -LPC2_0: - ldr r0, [pc, r0] - ldr r0, [r0] - mov r1, r0 - bx lr - - .globl _get_different_sel - .p2align 2 - .code 32 -_get_different_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_25911857653c680c-(LPC3_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_25911857653c680c-(LPC3_0+8)) -LPC3_0: - ldr r0, [pc, r0] - bx lr - - .globl _unused_sel - .p2align 2 - .code 32 -_unused_sel: - bx lr - - .globl _use_fns - .p2align 2 - .code 32 -_use_fns: - movw r9, :lower16:(L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534-(LPC5_0+8)) - movt r9, :upper16:(L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534-(LPC5_0+8)) -LPC5_0: - ldr r9, [pc, r9] - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_25911857653c680c-(LPC5_1+8)) - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_25911857653c680c-(LPC5_1+8)) -LPC5_1: - ldr r2, [pc, r2] - movw r3, :lower16:(L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-(LPC5_2+8)) - movt r3, :upper16:(L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-(LPC5_2+8)) -LPC5_2: - ldr r3, [pc, r3] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-(LPC5_3+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-(LPC5_3+8)) - str r2, [r0, #8] -LPC5_3: - ldr r1, [pc, r1] - str r9, [r0, #12] - stm r0, {r1, r3} - bx lr - - .globl _use_same_twice - .p2align 2 - .code 32 -_use_same_twice: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-(LPC6_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-(LPC6_0+8)) -LPC6_0: - ldr r1, [pc, r1] - str r1, [r0] - str r1, [r0, #4] - bx lr - - .globl _use_in_loop - .p2align 2 - .code 32 -_use_in_loop: - bx lr - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0 -L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0: - .asciz "simple" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0: - .long L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83 -L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83: - .asciz "simple" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83: - .long L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_25911857653c680c -L_OBJC_METH_VAR_NAME_25911857653c680c: - .asciz "i:am:different:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_25911857653c680c: - .long L_OBJC_METH_VAR_NAME_25911857653c680c - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_25911857653c680c - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_25911857653c680c: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_baa3c09478169afc -L_OBJC_METH_VAR_NAME_baa3c09478169afc: - .asciz "unused" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc: - .long L_OBJC_METH_VAR_NAME_baa3c09478169afc - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_baa3c09478169afc - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_baa3c09478169afc: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_acb291d82e56f534 -L_OBJC_METH_VAR_NAME_acb291d82e56f534: - .asciz "fourthSel" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534: - .long L_OBJC_METH_VAR_NAME_acb291d82e56f534 - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_acb291d82e56f534: - .asciz "\000\000\000\000@\000\000" - - .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e -L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e: - .asciz "loopedSelector" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e - .p2align 2, 0x0 -L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: - .long L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e - - .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e - .p2align 2, 0x0 -L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: - .asciz "\000\000\000\000@\000\000" - - .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers - .p2align 2, 0x0 -LL_OBJC_SELECTOR_REFERENCES_alloc$non_lazy_ptr: - .indirect_symbol L_OBJC_SELECTOR_REFERENCES_alloc - .long 0 - -.subsections_via_symbols diff --git a/helper-scripts/get_llvm_targets.fish b/helper-scripts/get_llvm_targets.fish index 40372554f..26ae956bf 100644 --- a/helper-scripts/get_llvm_targets.fish +++ b/helper-scripts/get_llvm_targets.fish @@ -1,4 +1,4 @@ -set APPLE_TARGETS x86_64-apple-darwin aarch64-apple-darwin aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios aarch64-apple-ios-macabi aarch64-apple-tvos aarch64-apple-watchos-sim arm64_32-apple-watchos armv7-apple-ios armv7k-apple-watchos armv7s-apple-ios i386-apple-ios i686-apple-darwin x86_64-apple-ios-macabi x86_64-apple-tvos x86_64-apple-watchos-sim +set APPLE_TARGETS x86_64-apple-darwin aarch64-apple-darwin aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios aarch64-apple-ios-macabi aarch64-apple-tvos aarch64-apple-watchos-sim arm64_32-apple-watchos armv7k-apple-watchos armv7s-apple-ios i386-apple-ios i686-apple-darwin x86_64-apple-ios-macabi x86_64-apple-tvos x86_64-apple-watchos-sim for TARGET in $APPLE_TARGETS echo "" diff --git a/helper-scripts/run-assembly-tests.sh b/helper-scripts/run-assembly-tests.sh index a198c2339..a2cbec989 100755 --- a/helper-scripts/run-assembly-tests.sh +++ b/helper-scripts/run-assembly-tests.sh @@ -17,7 +17,6 @@ echo "Apple" $RUN x86_64-apple-darwin $RUN aarch64-apple-darwin $RUN armv7s-apple-ios -$RUN armv7-apple-ios $RUN i386-apple-ios echo "Old Apple" diff --git a/helper-scripts/test-local.fish b/helper-scripts/test-local.sh old mode 100755 new mode 100644 similarity index 58% rename from helper-scripts/test-local.fish rename to helper-scripts/test-local.sh index 934ef8b1a..dfe1c6e5c --- a/helper-scripts/test-local.fish +++ b/helper-scripts/test-local.sh @@ -1,8 +1,8 @@ -#!/opt/local/bin/fish +#!/bin/bash # A test script I use to test on my local devices -export MACOSX_DEPLOYMENT_TARGET=10.7 -export IPHONEOS_DEPLOYMENT_TARGET=7.0 +export MACOSX_DEPLOYMENT_TARGET=10.12 +export IPHONEOS_DEPLOYMENT_TARGET=10.0 export FEATURES=std,malloc,block,exception,catch-all,verify,unstable-static-class,unstable-static-sel # Start the simulator @@ -17,10 +17,11 @@ cargo dinghy --device sim test --release # Followed this guide to set it up: # https://github.com/sonos/dinghy/blob/main/docs/ios.md # -# We use build-std because the target is armv7-apple-ios -cargo +nightly dinghy --device ipad test -Zbuild-std -cargo +nightly dinghy --device ipad test -Zbuild-std --features=$FEATURES -cargo +nightly dinghy --device ipad test -Zbuild-std --release +# We use build-std and earlier nightly because the target is armv7-apple-ios, which was removed in: +# https://github.com/rust-lang/rust/pull/104385 +IPHONEOS_DEPLOYMENT_TARGET=9.0 cargo +nightly-2023-09-23 dinghy --device ipad test -Zbuild-std +IPHONEOS_DEPLOYMENT_TARGET=9.0 cargo +nightly-2023-09-23 dinghy --device ipad test -Zbuild-std --features=$FEATURES +IPHONEOS_DEPLOYMENT_TARGET=9.0 cargo +nightly-2023-09-23 dinghy --device ipad test -Zbuild-std --release # Test on macOS 32bit export SDKROOT=(pwd)/ideas/MacOSX10.13.sdk