diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae81d7f1c..9affb1430 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -403,10 +403,7 @@ jobs: args: ${{ env.ARGS }} ${{ env.TESTARGS }} --features unstable-static-sel - name: Run assembly tests - # Not run on GNUStep yet since a lot of function labels are mangled and - # not inlined (and hence quite hard to match on, at some point we'll - # need to find a solution to that). - if: ${{ !contains(matrix.os, 'ubuntu') }} + if: ${{ !contains(matrix.runtime, 'compiler-rt') }} shell: bash run: export HOST_TARGET=$(rustc -vV | grep host | cut -f2 -d' ') diff --git a/helper-scripts/run-assembly-tests.sh b/helper-scripts/run-assembly-tests.sh new file mode 100755 index 000000000..a154b2330 --- /dev/null +++ b/helper-scripts/run-assembly-tests.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -euxo pipefail + +export HELPER="cargo run --features=run --bin=test-assembly -- --target" +export NIGHTLY_HELPER="cargo +nightly run --features=run --bin=test-assembly -- -Zbuild-std --target" + +echo "Apple" +$HELPER x86_64-apple-darwin +$HELPER aarch64-apple-darwin +$NIGHTLY_HELPER armv7s-apple-ios +$NIGHTLY_HELPER armv7-apple-ios +$NIGHTLY_HELPER i386-apple-ios + +echo "Old Apple" +$NIGHTLY_HELPER i686-apple-darwin + +echo "GNUStep" +$HELPER x86_64-unknown-linux-gnu --no-default-features --features=std,gnustep-2-1 +$HELPER i686-unknown-linux-gnu --no-default-features --features=std,gnustep-2-1 + +echo "Old GNUStep" +$HELPER x86_64-unknown-linux-gnu --no-default-features --features=std,gnustep-1-7 +$HELPER i686-unknown-linux-gnu --no-default-features --features=std,gnustep-1-7 diff --git a/objc2/src/message/gnustep.rs b/objc2/src/message/gnustep.rs index 7d6cbc06f..dd12e218d 100644 --- a/objc2/src/message/gnustep.rs +++ b/objc2/src/message/gnustep.rs @@ -1,10 +1,25 @@ +use core::hint; use core::mem; use super::conditional_try; use crate::ffi; -use crate::runtime::{Class, Object, Sel}; +use crate::runtime::{Class, Imp, Object, Sel}; use crate::{Encode, MessageArguments}; +#[inline] +fn unwrap_msg_send_fn(msg_send_fn: Option) -> Imp { + match msg_send_fn { + Some(msg_send_fn) => msg_send_fn, + None => { + // SAFETY: This will never be NULL, even if the selector is not + // found a callable function pointer will still be returned! + // + // `clang` doesn't insert a NULL check here either. + unsafe { hint::unreachable_unchecked() } + } + } +} + #[track_caller] pub(crate) unsafe fn send_unverified(receiver: *mut Object, sel: Sel, args: A) -> R where @@ -22,7 +37,7 @@ where } let msg_send_fn = unsafe { ffi::objc_msg_lookup(receiver.cast(), sel.as_ptr()) }; - let msg_send_fn = msg_send_fn.expect("Null IMP"); + let msg_send_fn = unwrap_msg_send_fn(msg_send_fn); unsafe { conditional_try(|| A::__invoke(msg_send_fn, receiver, sel, args)) } } @@ -48,6 +63,6 @@ where super_class: superclass.cast(), }; let msg_send_fn = unsafe { ffi::objc_msg_lookup_super(&sup, sel.as_ptr()) }; - let msg_send_fn = msg_send_fn.expect("Null IMP"); + let msg_send_fn = unwrap_msg_send_fn(msg_send_fn); unsafe { conditional_try(|| A::__invoke(msg_send_fn, receiver, sel, args)) } } diff --git a/test-assembly/crates/test_msg_send_id/expected/apple-old-x86.s b/test-assembly/crates/test_msg_send_id/expected/apple-old-x86.s deleted file mode 100644 index b42d5f569..000000000 --- a/test-assembly/crates/test_msg_send_id/expected/apple-old-x86.s +++ /dev/null @@ -1,110 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .intel_syntax noprefix - .globl _handle_alloc - .p2align 4, 0x90 -_handle_alloc: - push ebp - mov ebp, esp - pop ebp - jmp _objc_msgSend - - .globl _handle_init - .p2align 4, 0x90 -_handle_init: - push ebp - mov ebp, esp - pop ebp - jmp _objc_msgSend - - .globl _handle_alloc_init - .p2align 4, 0x90 -_handle_alloc_init: - push ebp - mov ebp, esp - push esi - push eax - mov esi, dword ptr [ebp + 16] - sub esp, 8 - push dword ptr [ebp + 12] - push dword ptr [ebp + 8] - call _objc_msgSend - add esp, 8 - push esi - push eax - call _objc_msgSend - add esp, 20 - pop esi - pop ebp - ret - - .globl _handle_alloc_release - .p2align 4, 0x90 -_handle_alloc_release: - push ebp - mov ebp, esp - sub esp, 8 - mov eax, dword ptr [ebp + 8] - mov ecx, dword ptr [ebp + 12] - mov dword ptr [esp + 4], ecx - mov dword ptr [esp], eax - call _objc_msgSend - mov dword ptr [esp], eax - call _objc_release - add esp, 8 - pop ebp - ret - - .globl _handle_alloc_init_release - .p2align 4, 0x90 -_handle_alloc_init_release: - push ebp - mov ebp, esp - push esi - sub esp, 20 - mov esi, dword ptr [ebp + 16] - mov eax, dword ptr [ebp + 8] - mov ecx, dword ptr [ebp + 12] - mov dword ptr [esp + 4], ecx - mov dword ptr [esp], eax - call _objc_msgSend - mov dword ptr [esp + 4], esi - mov dword ptr [esp], eax - call _objc_msgSend - mov dword ptr [esp], eax - call _objc_release - add esp, 20 - pop esi - pop ebp - ret - - .globl _handle_copy - .p2align 4, 0x90 -_handle_copy: - push ebp - mov ebp, esp - pop ebp - jmp _objc_msgSend - - .globl _handle_autoreleased - .p2align 4, 0x90 -_handle_autoreleased: - push ebp - mov ebp, esp - sub esp, 8 - mov eax, dword ptr [ebp + 8] - mov ecx, dword ptr [ebp + 12] - mov dword ptr [esp + 4], ecx - mov dword ptr [esp], eax - call _objc_msgSend - ## InlineAsm Start - - mov ebp, ebp - - ## InlineAsm End - mov dword ptr [esp], eax - call _objc_retainAutoreleasedReturnValue - add esp, 8 - pop ebp - ret - -.subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_id/expected/gnustep-x86.s b/test-assembly/crates/test_msg_send_id/expected/gnustep-x86.s new file mode 100644 index 000000000..c926641e0 --- /dev/null +++ b/test-assembly/crates/test_msg_send_id/expected/gnustep-x86.s @@ -0,0 +1,264 @@ + .text + .intel_syntax noprefix + .section .text.handle_alloc,"ax",@progbits + .globl handle_alloc + .p2align 4, 0x90 + .type handle_alloc,@function +handle_alloc: + push ebx + push edi + push esi + mov esi, dword ptr [esp + 16] + mov edi, dword ptr [esp + 20] + call .L0$pb +.L0$pb: + pop ebx +.Ltmp0: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb) + sub esp, 8 + push edi + push esi + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end0: + .size handle_alloc, .Lfunc_end0-handle_alloc + + .section .text.handle_init,"ax",@progbits + .globl handle_init + .p2align 4, 0x90 + .type handle_init,@function +handle_init: + push ebx + push edi + push esi + mov esi, dword ptr [esp + 16] + call .L1$pb +.L1$pb: + pop ebx +.Ltmp1: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp1-.L1$pb) + test esi, esi + je .LBB1_2 + mov edi, dword ptr [esp + 20] + sub esp, 8 + push edi + push esi + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + pop esi + pop edi + pop ebx + ret +.LBB1_2: + xor eax, eax + pop esi + pop edi + pop ebx + ret +.Lfunc_end1: + .size handle_init, .Lfunc_end1-handle_init + + .section .text.handle_alloc_init,"ax",@progbits + .globl handle_alloc_init + .p2align 4, 0x90 + .type handle_alloc_init,@function +handle_alloc_init: + push ebx + push edi + push esi + mov esi, dword ptr [esp + 16] + mov edi, dword ptr [esp + 20] + call .L2$pb +.L2$pb: + pop ebx +.Ltmp2: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp2-.L2$pb) + sub esp, 8 + push edi + push esi + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + test eax, eax + je .LBB2_2 + mov edi, dword ptr [esp + 24] + mov esi, eax + sub esp, 8 + push edi + push eax + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + pop esi + pop edi + pop ebx + ret +.LBB2_2: + xor eax, eax + pop esi + pop edi + pop ebx + ret +.Lfunc_end2: + .size handle_alloc_init, .Lfunc_end2-handle_alloc_init + + .section .text.handle_alloc_release,"ax",@progbits + .globl handle_alloc_release + .p2align 4, 0x90 + .type handle_alloc_release,@function +handle_alloc_release: + push ebx + push edi + push esi + sub esp, 16 + mov esi, dword ptr [esp + 32] + mov edi, dword ptr [esp + 36] + call .L3$pb +.L3$pb: + pop ebx +.Ltmp3: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp3-.L3$pb) + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call objc_msg_lookup@PLT + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call eax + mov dword ptr [esp], eax + call objc_release@PLT + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end3: + .size handle_alloc_release, .Lfunc_end3-handle_alloc_release + + .section .text.handle_alloc_init_release,"ax",@progbits + .globl handle_alloc_init_release + .p2align 4, 0x90 + .type handle_alloc_init_release,@function +handle_alloc_init_release: + push ebx + push edi + push esi + sub esp, 16 + mov esi, dword ptr [esp + 32] + mov edi, dword ptr [esp + 36] + call .L4$pb +.L4$pb: + pop ebx +.Ltmp4: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp4-.L4$pb) + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call objc_msg_lookup@PLT + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call eax + test eax, eax + je .LBB4_1 + mov edi, dword ptr [esp + 40] + mov esi, eax + mov dword ptr [esp], eax + mov dword ptr [esp + 4], edi + call objc_msg_lookup@PLT + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call eax + jmp .LBB4_3 +.LBB4_1: + xor eax, eax +.LBB4_3: + mov dword ptr [esp], eax + call objc_release@PLT + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end4: + .size handle_alloc_init_release, .Lfunc_end4-handle_alloc_init_release + + .section .text.handle_copy,"ax",@progbits + .globl handle_copy + .p2align 4, 0x90 + .type handle_copy,@function +handle_copy: + push ebx + push edi + push esi + mov esi, dword ptr [esp + 16] + mov edi, dword ptr [esp + 20] + call .L5$pb +.L5$pb: + pop ebx +.Ltmp5: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp5-.L5$pb) + sub esp, 8 + push edi + push esi + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end5: + .size handle_copy, .Lfunc_end5-handle_copy + + .section .text.handle_autoreleased,"ax",@progbits + .globl handle_autoreleased + .p2align 4, 0x90 + .type handle_autoreleased,@function +handle_autoreleased: + push ebx + push edi + push esi + sub esp, 16 + mov esi, dword ptr [esp + 32] + mov edi, dword ptr [esp + 36] + call .L6$pb +.L6$pb: + pop ebx +.Ltmp6: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp6-.L6$pb) + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call objc_msg_lookup@PLT + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call eax + mov dword ptr [esp], eax + call objc_retainAutoreleasedReturnValue@PLT + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end6: + .size handle_autoreleased, .Lfunc_end6-handle_autoreleased + + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_msg_send_id/expected/gnustep-x86_64.s b/test-assembly/crates/test_msg_send_id/expected/gnustep-x86_64.s new file mode 100644 index 000000000..0104a6857 --- /dev/null +++ b/test-assembly/crates/test_msg_send_id/expected/gnustep-x86_64.s @@ -0,0 +1,186 @@ + .text + .intel_syntax noprefix + .section .text.handle_alloc,"ax",@progbits + .globl handle_alloc + .p2align 4, 0x90 + .type handle_alloc,@function +handle_alloc: + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + add rsp, 8 + pop rbx + pop r14 + jmp rax +.Lfunc_end0: + .size handle_alloc, .Lfunc_end0-handle_alloc + + .section .text.handle_init,"ax",@progbits + .globl handle_init + .p2align 4, 0x90 + .type handle_init,@function +handle_init: + test rdi, rdi + je .LBB1_1 + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + add rsp, 8 + pop rbx + pop r14 + jmp rax +.LBB1_1: + xor eax, eax + ret +.Lfunc_end1: + .size handle_init, .Lfunc_end1-handle_init + + .section .text.handle_alloc_init,"ax",@progbits + .globl handle_alloc_init + .p2align 4, 0x90 + .type handle_alloc_init,@function +handle_alloc_init: + push r15 + push r14 + push rbx + mov r14, rdx + mov r15, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r15 + call rax + test rax, rax + je .LBB2_1 + mov rbx, rax + mov rdi, rax + mov rsi, r14 + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + pop rbx + pop r14 + pop r15 + jmp rax +.LBB2_1: + xor eax, eax + pop rbx + pop r14 + pop r15 + ret +.Lfunc_end2: + .size handle_alloc_init, .Lfunc_end2-handle_alloc_init + + .section .text.handle_alloc_release,"ax",@progbits + .globl handle_alloc_release + .p2align 4, 0x90 + .type handle_alloc_release,@function +handle_alloc_release: + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + call rax + mov rdi, rax + add rsp, 8 + pop rbx + pop r14 + jmp qword ptr [rip + objc_release@GOTPCREL] +.Lfunc_end3: + .size handle_alloc_release, .Lfunc_end3-handle_alloc_release + + .section .text.handle_alloc_init_release,"ax",@progbits + .globl handle_alloc_init_release + .p2align 4, 0x90 + .type handle_alloc_init_release,@function +handle_alloc_init_release: + push r15 + push r14 + push rbx + mov r14, rdx + mov r15, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r15 + call rax + test rax, rax + je .LBB4_1 + mov rbx, rax + mov rdi, rax + mov rsi, r14 + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + call rax + mov rdi, rax + pop rbx + pop r14 + pop r15 + jmp qword ptr [rip + objc_release@GOTPCREL] +.LBB4_1: + xor edi, edi + pop rbx + pop r14 + pop r15 + jmp qword ptr [rip + objc_release@GOTPCREL] +.Lfunc_end4: + .size handle_alloc_init_release, .Lfunc_end4-handle_alloc_init_release + + .section .text.handle_copy,"ax",@progbits + .globl handle_copy + .p2align 4, 0x90 + .type handle_copy,@function +handle_copy: + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + add rsp, 8 + pop rbx + pop r14 + jmp rax +.Lfunc_end5: + .size handle_copy, .Lfunc_end5-handle_copy + + .section .text.handle_autoreleased,"ax",@progbits + .globl handle_autoreleased + .p2align 4, 0x90 + .type handle_autoreleased,@function +handle_autoreleased: + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + call rax + mov rdi, rax + add rsp, 8 + pop rbx + pop r14 + jmp qword ptr [rip + objc_retainAutoreleasedReturnValue@GOTPCREL] +.Lfunc_end6: + .size handle_autoreleased, .Lfunc_end6-handle_autoreleased + + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_msg_send_static_sel/Cargo.toml b/test-assembly/crates/test_msg_send_static_sel/Cargo.toml index 6181940b9..c436ba35a 100644 --- a/test-assembly/crates/test_msg_send_static_sel/Cargo.toml +++ b/test-assembly/crates/test_msg_send_static_sel/Cargo.toml @@ -8,18 +8,18 @@ publish = false path = "lib.rs" [dependencies] -objc2 = { path = "../../../objc2", default-features = false } +objc2 = { path = "../../../objc2", default-features = false, optional = true } [features] default = ["apple", "std"] -std = ["objc2/std"] +std = ["objc2?/std"] # Runtime -apple = ["objc2/apple"] -gnustep-1-7 = ["objc2/gnustep-1-7"] -gnustep-1-8 = ["gnustep-1-7", "objc2/gnustep-1-8"] -gnustep-1-9 = ["gnustep-1-8", "objc2/gnustep-1-9"] -gnustep-2-0 = ["gnustep-1-9", "objc2/gnustep-2-0"] -gnustep-2-1 = ["gnustep-2-0", "objc2/gnustep-2-1"] +apple = ["objc2", "objc2?/apple"] +gnustep-1-7 = ["objc2?/gnustep-1-7"] +gnustep-1-8 = ["gnustep-1-7", "objc2?/gnustep-1-8"] +gnustep-1-9 = ["gnustep-1-8", "objc2?/gnustep-1-9"] +gnustep-2-0 = ["gnustep-1-9", "objc2?/gnustep-2-0"] +gnustep-2-1 = ["gnustep-2-0", "objc2?/gnustep-2-1"] # Hack to prevent the feature flag from being enabled in the entire project -assembly-features = ["objc2/unstable-static-sel-inlined"] +assembly-features = ["objc2?/unstable-static-sel-inlined"] diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/apple-aarch64.s b/test-assembly/crates/test_msg_send_static_sel/expected/apple-aarch64.s index 1cec95fa6..5ac1a3c05 100644 --- a/test-assembly/crates/test_msg_send_static_sel/expected/apple-aarch64.s +++ b/test-assembly/crates/test_msg_send_static_sel/expected/apple-aarch64.s @@ -3,9 +3,9 @@ .p2align 2 _handle_with_sel: Lloh0: - adrp x8, L_OBJC_SELECTOR_REFERENCES_40f5b12005284286@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc@PAGE Lloh1: - ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_40f5b12005284286@PAGEOFF] + ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc@PAGEOFF] b _objc_msgSend .loh AdrpLdr Lloh0, Lloh1 @@ -16,13 +16,13 @@ _handle_alloc_init: stp x29, x30, [sp, #16] add x29, sp, #16 Lloh2: - adrp x8, L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328@PAGE Lloh3: - ldr x19, [x8, L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9@PAGEOFF] + ldr x19, [x8, L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328@PAGEOFF] Lloh4: - adrp x8, L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_dcb825748735621d@PAGE Lloh5: - ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9@PAGEOFF] + ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_dcb825748735621d@PAGEOFF] bl _objc_msgSend mov x1, x19 ldp x29, x30, [sp, #16] @@ -40,24 +40,24 @@ _use_generic: add x29, sp, #16 mov x19, x0 Lloh6: - adrp x8, L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673@PAGE Lloh7: - ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4@PAGEOFF] - adrp x20, L_OBJC_SELECTOR_REFERENCES_31f63858e271db32@PAGE - ldr x2, [x20, L_OBJC_SELECTOR_REFERENCES_31f63858e271db32@PAGEOFF] + ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673@PAGEOFF] + adrp x20, L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe@PAGE + ldr x2, [x20, L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe@PAGEOFF] bl _objc_msgSend Lloh8: - adrp x8, L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446@PAGE Lloh9: - ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1@PAGEOFF] - ldr x2, [x20, L_OBJC_SELECTOR_REFERENCES_31f63858e271db32@PAGEOFF] + ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446@PAGEOFF] + ldr x2, [x20, L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe@PAGEOFF] mov x0, x19 bl _objc_msgSend Lloh10: - adrp x8, L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d@PAGE Lloh11: - ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720@PAGEOFF] - ldr x2, [x20, L_OBJC_SELECTOR_REFERENCES_31f63858e271db32@PAGEOFF] + ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d@PAGEOFF] + ldr x2, [x20, L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe@PAGEOFF] mov x0, x19 ldp x29, x30, [sp, #16] ldp x20, x19, [sp], #32 @@ -67,122 +67,122 @@ Lloh11: .loh AdrpLdr Lloh6, Lloh7 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_40f5b12005284286 + .globl L_OBJC_IMAGE_INFO_044375a4329d08dc .p2align 2 -L_OBJC_IMAGE_INFO_40f5b12005284286: +L_OBJC_IMAGE_INFO_044375a4329d08dc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_40f5b12005284286 -L_OBJC_METH_VAR_NAME_40f5b12005284286: + .globl L_OBJC_METH_VAR_NAME_044375a4329d08dc +L_OBJC_METH_VAR_NAME_044375a4329d08dc: .asciz "someSelector" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_40f5b12005284286 + .globl L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc .p2align 3 -L_OBJC_SELECTOR_REFERENCES_40f5b12005284286: - .quad L_OBJC_METH_VAR_NAME_40f5b12005284286 +L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc: + .quad L_OBJC_METH_VAR_NAME_044375a4329d08dc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_904c14aa63c4eec9 + .globl L_OBJC_IMAGE_INFO_cb49b9ab1b00e328 .p2align 2 -L_OBJC_IMAGE_INFO_904c14aa63c4eec9: +L_OBJC_IMAGE_INFO_cb49b9ab1b00e328: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 -L_OBJC_METH_VAR_NAME_904c14aa63c4eec9: + .globl L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 +L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328: .asciz "init" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9 + .globl L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9: - .quad L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 +L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328: + .quad L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_b1ab35d3713395f9 + .globl L_OBJC_IMAGE_INFO_dcb825748735621d .p2align 2 -L_OBJC_IMAGE_INFO_b1ab35d3713395f9: +L_OBJC_IMAGE_INFO_dcb825748735621d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 -L_OBJC_METH_VAR_NAME_b1ab35d3713395f9: + .globl L_OBJC_METH_VAR_NAME_dcb825748735621d +L_OBJC_METH_VAR_NAME_dcb825748735621d: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9 + .globl L_OBJC_SELECTOR_REFERENCES_dcb825748735621d .p2align 3 -L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9: - .quad L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 +L_OBJC_SELECTOR_REFERENCES_dcb825748735621d: + .quad L_OBJC_METH_VAR_NAME_dcb825748735621d .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_31f63858e271db32 + .globl L_OBJC_IMAGE_INFO_457d234345d46cbe .p2align 2 -L_OBJC_IMAGE_INFO_31f63858e271db32: +L_OBJC_IMAGE_INFO_457d234345d46cbe: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_31f63858e271db32 -L_OBJC_METH_VAR_NAME_31f63858e271db32: + .globl L_OBJC_METH_VAR_NAME_457d234345d46cbe +L_OBJC_METH_VAR_NAME_457d234345d46cbe: .asciz "generic:selector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_31f63858e271db32 + .globl L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe .p2align 3 -L_OBJC_SELECTOR_REFERENCES_31f63858e271db32: - .quad L_OBJC_METH_VAR_NAME_31f63858e271db32 +L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe: + .quad L_OBJC_METH_VAR_NAME_457d234345d46cbe .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cdfe92d39025fdf4 + .globl L_OBJC_IMAGE_INFO_f16064a6f68ca673 .p2align 2 -L_OBJC_IMAGE_INFO_cdfe92d39025fdf4: +L_OBJC_IMAGE_INFO_f16064a6f68ca673: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 -L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4: + .globl L_OBJC_METH_VAR_NAME_f16064a6f68ca673 +L_OBJC_METH_VAR_NAME_f16064a6f68ca673: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4 + .globl L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4: - .quad L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 +L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673: + .quad L_OBJC_METH_VAR_NAME_f16064a6f68ca673 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_79bd65c86d46fbf1 + .globl L_OBJC_IMAGE_INFO_9f134b97cb598446 .p2align 2 -L_OBJC_IMAGE_INFO_79bd65c86d46fbf1: +L_OBJC_IMAGE_INFO_9f134b97cb598446: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 -L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1: + .globl L_OBJC_METH_VAR_NAME_9f134b97cb598446 +L_OBJC_METH_VAR_NAME_9f134b97cb598446: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1 + .globl L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1: - .quad L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 +L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446: + .quad L_OBJC_METH_VAR_NAME_9f134b97cb598446 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_8e0840c6b39b7720 + .globl L_OBJC_IMAGE_INFO_e76e01e8b2327e5d .p2align 2 -L_OBJC_IMAGE_INFO_8e0840c6b39b7720: +L_OBJC_IMAGE_INFO_e76e01e8b2327e5d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 -L_OBJC_METH_VAR_NAME_8e0840c6b39b7720: + .globl L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d +L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720 + .globl L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d .p2align 3 -L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720: - .quad L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 +L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d: + .quad L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d .subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s b/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s index 36112fd79..8a2d6e837 100644 --- a/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s +++ b/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7.s @@ -4,8 +4,8 @@ .p2align 2 .code 32 _handle_with_sel: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_40f5b12005284286-(LPC0_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_40f5b12005284286-(LPC0_0+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc-(LPC0_0+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc-(LPC0_0+8)) LPC0_0: ldr r1, [pc, r1] b _objc_msgSend @@ -16,12 +16,12 @@ LPC0_0: _handle_alloc_init: push {r4, r7, lr} add r7, sp, #4 - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9-(LPC1_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9-(LPC1_0+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_dcb825748735621d-(LPC1_0+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_dcb825748735621d-(LPC1_0+8)) LPC1_0: ldr r1, [pc, r1] - movw r4, :lower16:(L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9-(LPC1_1+8)) - movt r4, :upper16:(L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9-(LPC1_1+8)) + movw r4, :lower16:(L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328-(LPC1_1+8)) + movt r4, :upper16:(L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328-(LPC1_1+8)) LPC1_1: ldr r4, [pc, r4] bl _objc_msgSend @@ -35,155 +35,155 @@ LPC1_1: _use_generic: push {r4, r7, lr} add r7, sp, #4 - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_0+8)) + movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_0+8)) mov r4, r0 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_0+8)) + movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_0+8)) LPC2_0: ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4-(LPC2_1+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4-(LPC2_1+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673-(LPC2_1+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673-(LPC2_1+8)) LPC2_1: ldr r1, [pc, r1] bl _objc_msgSend - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_2+8)) + movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_2+8)) mov r0, r4 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_2+8)) + movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_2+8)) LPC2_2: ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1-(LPC2_3+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1-(LPC2_3+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446-(LPC2_3+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446-(LPC2_3+8)) LPC2_3: ldr r1, [pc, r1] bl _objc_msgSend - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_4+8)) + movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_4+8)) mov r0, r4 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_4+8)) + movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_4+8)) LPC2_4: ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720-(LPC2_5+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720-(LPC2_5+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d-(LPC2_5+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d-(LPC2_5+8)) LPC2_5: ldr r1, [pc, r1] pop {r4, r7, lr} b _objc_msgSend .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_40f5b12005284286 + .globl L_OBJC_IMAGE_INFO_044375a4329d08dc .p2align 2 -L_OBJC_IMAGE_INFO_40f5b12005284286: +L_OBJC_IMAGE_INFO_044375a4329d08dc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_40f5b12005284286 -L_OBJC_METH_VAR_NAME_40f5b12005284286: + .globl L_OBJC_METH_VAR_NAME_044375a4329d08dc +L_OBJC_METH_VAR_NAME_044375a4329d08dc: .asciz "someSelector" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_40f5b12005284286 + .globl L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_40f5b12005284286: - .long L_OBJC_METH_VAR_NAME_40f5b12005284286 +L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc: + .long L_OBJC_METH_VAR_NAME_044375a4329d08dc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_904c14aa63c4eec9 + .globl L_OBJC_IMAGE_INFO_cb49b9ab1b00e328 .p2align 2 -L_OBJC_IMAGE_INFO_904c14aa63c4eec9: +L_OBJC_IMAGE_INFO_cb49b9ab1b00e328: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 -L_OBJC_METH_VAR_NAME_904c14aa63c4eec9: + .globl L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 +L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328: .asciz "init" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9 + .globl L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9: - .long L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 +L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328: + .long L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_b1ab35d3713395f9 + .globl L_OBJC_IMAGE_INFO_dcb825748735621d .p2align 2 -L_OBJC_IMAGE_INFO_b1ab35d3713395f9: +L_OBJC_IMAGE_INFO_dcb825748735621d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 -L_OBJC_METH_VAR_NAME_b1ab35d3713395f9: + .globl L_OBJC_METH_VAR_NAME_dcb825748735621d +L_OBJC_METH_VAR_NAME_dcb825748735621d: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9 + .globl L_OBJC_SELECTOR_REFERENCES_dcb825748735621d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9: - .long L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 +L_OBJC_SELECTOR_REFERENCES_dcb825748735621d: + .long L_OBJC_METH_VAR_NAME_dcb825748735621d .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_31f63858e271db32 + .globl L_OBJC_IMAGE_INFO_457d234345d46cbe .p2align 2 -L_OBJC_IMAGE_INFO_31f63858e271db32: +L_OBJC_IMAGE_INFO_457d234345d46cbe: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_31f63858e271db32 -L_OBJC_METH_VAR_NAME_31f63858e271db32: + .globl L_OBJC_METH_VAR_NAME_457d234345d46cbe +L_OBJC_METH_VAR_NAME_457d234345d46cbe: .asciz "generic:selector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_31f63858e271db32 + .globl L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe .p2align 2 -L_OBJC_SELECTOR_REFERENCES_31f63858e271db32: - .long L_OBJC_METH_VAR_NAME_31f63858e271db32 +L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe: + .long L_OBJC_METH_VAR_NAME_457d234345d46cbe .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cdfe92d39025fdf4 + .globl L_OBJC_IMAGE_INFO_f16064a6f68ca673 .p2align 2 -L_OBJC_IMAGE_INFO_cdfe92d39025fdf4: +L_OBJC_IMAGE_INFO_f16064a6f68ca673: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 -L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4: + .globl L_OBJC_METH_VAR_NAME_f16064a6f68ca673 +L_OBJC_METH_VAR_NAME_f16064a6f68ca673: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4 + .globl L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4: - .long L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 +L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673: + .long L_OBJC_METH_VAR_NAME_f16064a6f68ca673 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_79bd65c86d46fbf1 + .globl L_OBJC_IMAGE_INFO_9f134b97cb598446 .p2align 2 -L_OBJC_IMAGE_INFO_79bd65c86d46fbf1: +L_OBJC_IMAGE_INFO_9f134b97cb598446: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 -L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1: + .globl L_OBJC_METH_VAR_NAME_9f134b97cb598446 +L_OBJC_METH_VAR_NAME_9f134b97cb598446: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1 + .globl L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1: - .long L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 +L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446: + .long L_OBJC_METH_VAR_NAME_9f134b97cb598446 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_8e0840c6b39b7720 + .globl L_OBJC_IMAGE_INFO_e76e01e8b2327e5d .p2align 2 -L_OBJC_IMAGE_INFO_8e0840c6b39b7720: +L_OBJC_IMAGE_INFO_e76e01e8b2327e5d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 -L_OBJC_METH_VAR_NAME_8e0840c6b39b7720: + .globl L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d +L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720 + .globl L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720: - .long L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 +L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d: + .long L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d .subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7s.s b/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7s.s index 6540a3cda..b258c95dd 100644 --- a/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7s.s +++ b/test-assembly/crates/test_msg_send_static_sel/expected/apple-armv7s.s @@ -6,8 +6,8 @@ _handle_with_sel: push {r7, lr} mov r7, sp - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_40f5b12005284286-(LPC0_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_40f5b12005284286-(LPC0_0+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc-(LPC0_0+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc-(LPC0_0+8)) LPC0_0: ldr r1, [pc, r1] bl _objc_msgSend @@ -19,12 +19,12 @@ LPC0_0: _handle_alloc_init: push {r4, r7, lr} add r7, sp, #4 - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9-(LPC1_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9-(LPC1_0+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_dcb825748735621d-(LPC1_0+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_dcb825748735621d-(LPC1_0+8)) LPC1_0: ldr r1, [pc, r1] - movw r4, :lower16:(L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9-(LPC1_1+8)) - movt r4, :upper16:(L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9-(LPC1_1+8)) + movw r4, :lower16:(L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328-(LPC1_1+8)) + movt r4, :upper16:(L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328-(LPC1_1+8)) LPC1_1: ldr r4, [pc, r4] bl _objc_msgSend @@ -38,155 +38,155 @@ LPC1_1: _use_generic: push {r4, r7, lr} add r7, sp, #4 - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_0+8)) + movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_0+8)) mov r4, r0 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_0+8)) + movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_0+8)) LPC2_0: ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4-(LPC2_1+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4-(LPC2_1+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673-(LPC2_1+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673-(LPC2_1+8)) LPC2_1: ldr r1, [pc, r1] bl _objc_msgSend - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_2+8)) + movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_2+8)) mov r0, r4 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_2+8)) + movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_2+8)) LPC2_2: ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1-(LPC2_3+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1-(LPC2_3+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446-(LPC2_3+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446-(LPC2_3+8)) LPC2_3: ldr r1, [pc, r1] bl _objc_msgSend - movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_4+8)) + movw r2, :lower16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_4+8)) mov r0, r4 - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-(LPC2_4+8)) + movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-(LPC2_4+8)) LPC2_4: ldr r2, [pc, r2] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720-(LPC2_5+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720-(LPC2_5+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d-(LPC2_5+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d-(LPC2_5+8)) LPC2_5: ldr r1, [pc, r1] bl _objc_msgSend pop {r4, r7, pc} .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_40f5b12005284286 + .globl L_OBJC_IMAGE_INFO_044375a4329d08dc .p2align 2 -L_OBJC_IMAGE_INFO_40f5b12005284286: +L_OBJC_IMAGE_INFO_044375a4329d08dc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_40f5b12005284286 -L_OBJC_METH_VAR_NAME_40f5b12005284286: + .globl L_OBJC_METH_VAR_NAME_044375a4329d08dc +L_OBJC_METH_VAR_NAME_044375a4329d08dc: .asciz "someSelector" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_40f5b12005284286 + .globl L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_40f5b12005284286: - .long L_OBJC_METH_VAR_NAME_40f5b12005284286 +L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc: + .long L_OBJC_METH_VAR_NAME_044375a4329d08dc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_904c14aa63c4eec9 + .globl L_OBJC_IMAGE_INFO_cb49b9ab1b00e328 .p2align 2 -L_OBJC_IMAGE_INFO_904c14aa63c4eec9: +L_OBJC_IMAGE_INFO_cb49b9ab1b00e328: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 -L_OBJC_METH_VAR_NAME_904c14aa63c4eec9: + .globl L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 +L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328: .asciz "init" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9 + .globl L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9: - .long L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 +L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328: + .long L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_b1ab35d3713395f9 + .globl L_OBJC_IMAGE_INFO_dcb825748735621d .p2align 2 -L_OBJC_IMAGE_INFO_b1ab35d3713395f9: +L_OBJC_IMAGE_INFO_dcb825748735621d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 -L_OBJC_METH_VAR_NAME_b1ab35d3713395f9: + .globl L_OBJC_METH_VAR_NAME_dcb825748735621d +L_OBJC_METH_VAR_NAME_dcb825748735621d: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9 + .globl L_OBJC_SELECTOR_REFERENCES_dcb825748735621d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9: - .long L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 +L_OBJC_SELECTOR_REFERENCES_dcb825748735621d: + .long L_OBJC_METH_VAR_NAME_dcb825748735621d .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_31f63858e271db32 + .globl L_OBJC_IMAGE_INFO_457d234345d46cbe .p2align 2 -L_OBJC_IMAGE_INFO_31f63858e271db32: +L_OBJC_IMAGE_INFO_457d234345d46cbe: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_31f63858e271db32 -L_OBJC_METH_VAR_NAME_31f63858e271db32: + .globl L_OBJC_METH_VAR_NAME_457d234345d46cbe +L_OBJC_METH_VAR_NAME_457d234345d46cbe: .asciz "generic:selector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_31f63858e271db32 + .globl L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe .p2align 2 -L_OBJC_SELECTOR_REFERENCES_31f63858e271db32: - .long L_OBJC_METH_VAR_NAME_31f63858e271db32 +L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe: + .long L_OBJC_METH_VAR_NAME_457d234345d46cbe .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cdfe92d39025fdf4 + .globl L_OBJC_IMAGE_INFO_f16064a6f68ca673 .p2align 2 -L_OBJC_IMAGE_INFO_cdfe92d39025fdf4: +L_OBJC_IMAGE_INFO_f16064a6f68ca673: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 -L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4: + .globl L_OBJC_METH_VAR_NAME_f16064a6f68ca673 +L_OBJC_METH_VAR_NAME_f16064a6f68ca673: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4 + .globl L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4: - .long L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 +L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673: + .long L_OBJC_METH_VAR_NAME_f16064a6f68ca673 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_79bd65c86d46fbf1 + .globl L_OBJC_IMAGE_INFO_9f134b97cb598446 .p2align 2 -L_OBJC_IMAGE_INFO_79bd65c86d46fbf1: +L_OBJC_IMAGE_INFO_9f134b97cb598446: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 -L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1: + .globl L_OBJC_METH_VAR_NAME_9f134b97cb598446 +L_OBJC_METH_VAR_NAME_9f134b97cb598446: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1 + .globl L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1: - .long L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 +L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446: + .long L_OBJC_METH_VAR_NAME_9f134b97cb598446 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_8e0840c6b39b7720 + .globl L_OBJC_IMAGE_INFO_e76e01e8b2327e5d .p2align 2 -L_OBJC_IMAGE_INFO_8e0840c6b39b7720: +L_OBJC_IMAGE_INFO_e76e01e8b2327e5d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 -L_OBJC_METH_VAR_NAME_8e0840c6b39b7720: + .globl L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d +L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720 + .globl L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720: - .long L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 +L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d: + .long L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d .subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/apple-old-x86.s b/test-assembly/crates/test_msg_send_static_sel/expected/apple-old-x86.s index 09b496a01..576f30749 100644 --- a/test-assembly/crates/test_msg_send_static_sel/expected/apple-old-x86.s +++ b/test-assembly/crates/test_msg_send_static_sel/expected/apple-old-x86.s @@ -10,7 +10,7 @@ _handle_with_sel: L0$pb: pop eax sub esp, 8 - push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_40f5b12005284286-L0$pb] + push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc-L0$pb] push dword ptr [ebp + 8] call _objc_msgSend add esp, 24 @@ -27,9 +27,9 @@ _handle_alloc_init: call L1$pb L1$pb: pop eax - mov esi, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9-L1$pb] + mov esi, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328-L1$pb] sub esp, 8 - push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9-L1$pb] + push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_dcb825748735621d-L1$pb] push dword ptr [ebp + 8] call _objc_msgSend add esp, 8 @@ -53,18 +53,18 @@ L2$pb: pop esi mov edi, dword ptr [ebp + 8] sub esp, 4 - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-L2$pb] - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673-L2$pb] push edi call _objc_msgSend add esp, 12 - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-L2$pb] - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446-L2$pb] push edi call _objc_msgSend add esp, 12 - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-L2$pb] - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d-L2$pb] push edi call _objc_msgSend add esp, 16 @@ -74,122 +74,122 @@ L2$pb: ret .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_40f5b12005284286 + .globl L_OBJC_IMAGE_INFO_044375a4329d08dc .p2align 2 -L_OBJC_IMAGE_INFO_40f5b12005284286: +L_OBJC_IMAGE_INFO_044375a4329d08dc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_40f5b12005284286 -L_OBJC_METH_VAR_NAME_40f5b12005284286: + .globl L_OBJC_METH_VAR_NAME_044375a4329d08dc +L_OBJC_METH_VAR_NAME_044375a4329d08dc: .asciz "someSelector" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_40f5b12005284286 + .globl L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_40f5b12005284286: - .long L_OBJC_METH_VAR_NAME_40f5b12005284286 +L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc: + .long L_OBJC_METH_VAR_NAME_044375a4329d08dc .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_904c14aa63c4eec9 + .globl L_OBJC_IMAGE_INFO_cb49b9ab1b00e328 .p2align 2 -L_OBJC_IMAGE_INFO_904c14aa63c4eec9: +L_OBJC_IMAGE_INFO_cb49b9ab1b00e328: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 -L_OBJC_METH_VAR_NAME_904c14aa63c4eec9: + .globl L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 +L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328: .asciz "init" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9 + .globl L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9: - .long L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 +L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328: + .long L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_b1ab35d3713395f9 + .globl L_OBJC_IMAGE_INFO_dcb825748735621d .p2align 2 -L_OBJC_IMAGE_INFO_b1ab35d3713395f9: +L_OBJC_IMAGE_INFO_dcb825748735621d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 -L_OBJC_METH_VAR_NAME_b1ab35d3713395f9: + .globl L_OBJC_METH_VAR_NAME_dcb825748735621d +L_OBJC_METH_VAR_NAME_dcb825748735621d: .asciz "alloc" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9 + .globl L_OBJC_SELECTOR_REFERENCES_dcb825748735621d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9: - .long L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 +L_OBJC_SELECTOR_REFERENCES_dcb825748735621d: + .long L_OBJC_METH_VAR_NAME_dcb825748735621d .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_31f63858e271db32 + .globl L_OBJC_IMAGE_INFO_457d234345d46cbe .p2align 2 -L_OBJC_IMAGE_INFO_31f63858e271db32: +L_OBJC_IMAGE_INFO_457d234345d46cbe: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_31f63858e271db32 -L_OBJC_METH_VAR_NAME_31f63858e271db32: + .globl L_OBJC_METH_VAR_NAME_457d234345d46cbe +L_OBJC_METH_VAR_NAME_457d234345d46cbe: .asciz "generic:selector:" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_31f63858e271db32 + .globl L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe .p2align 2 -L_OBJC_SELECTOR_REFERENCES_31f63858e271db32: - .long L_OBJC_METH_VAR_NAME_31f63858e271db32 +L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe: + .long L_OBJC_METH_VAR_NAME_457d234345d46cbe .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_cdfe92d39025fdf4 + .globl L_OBJC_IMAGE_INFO_f16064a6f68ca673 .p2align 2 -L_OBJC_IMAGE_INFO_cdfe92d39025fdf4: +L_OBJC_IMAGE_INFO_f16064a6f68ca673: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 -L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4: + .globl L_OBJC_METH_VAR_NAME_f16064a6f68ca673 +L_OBJC_METH_VAR_NAME_f16064a6f68ca673: .asciz "performSelector:" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4 + .globl L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4: - .long L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 +L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673: + .long L_OBJC_METH_VAR_NAME_f16064a6f68ca673 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_79bd65c86d46fbf1 + .globl L_OBJC_IMAGE_INFO_9f134b97cb598446 .p2align 2 -L_OBJC_IMAGE_INFO_79bd65c86d46fbf1: +L_OBJC_IMAGE_INFO_9f134b97cb598446: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 -L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1: + .globl L_OBJC_METH_VAR_NAME_9f134b97cb598446 +L_OBJC_METH_VAR_NAME_9f134b97cb598446: .asciz "performSelector:" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1 + .globl L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1: - .long L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 +L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446: + .long L_OBJC_METH_VAR_NAME_9f134b97cb598446 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_8e0840c6b39b7720 + .globl L_OBJC_IMAGE_INFO_e76e01e8b2327e5d .p2align 2 -L_OBJC_IMAGE_INFO_8e0840c6b39b7720: +L_OBJC_IMAGE_INFO_e76e01e8b2327e5d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 -L_OBJC_METH_VAR_NAME_8e0840c6b39b7720: + .globl L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d +L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d: .asciz "performSelector:" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720 + .globl L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720: - .long L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 +L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d: + .long L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d .subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86.s b/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86.s index bb9869903..0420a25c4 100644 --- a/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86.s +++ b/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86.s @@ -10,7 +10,7 @@ _handle_with_sel: L0$pb: pop eax sub esp, 8 - push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_40f5b12005284286-L0$pb] + push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc-L0$pb] push dword ptr [ebp + 8] call _objc_msgSend add esp, 24 @@ -27,9 +27,9 @@ _handle_alloc_init: call L1$pb L1$pb: pop eax - mov esi, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9-L1$pb] + mov esi, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328-L1$pb] sub esp, 8 - push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9-L1$pb] + push dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_dcb825748735621d-L1$pb] push dword ptr [ebp + 8] call _objc_msgSend add esp, 8 @@ -53,18 +53,18 @@ L2$pb: pop esi mov edi, dword ptr [ebp + 8] sub esp, 4 - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-L2$pb] - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673-L2$pb] push edi call _objc_msgSend add esp, 12 - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-L2$pb] - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446-L2$pb] push edi call _objc_msgSend add esp, 12 - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32-L2$pb] - push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe-L2$pb] + push dword ptr [esi + L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d-L2$pb] push edi call _objc_msgSend add esp, 16 @@ -74,122 +74,122 @@ L2$pb: ret .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_40f5b12005284286 + .globl L_OBJC_IMAGE_INFO_044375a4329d08dc .p2align 2 -L_OBJC_IMAGE_INFO_40f5b12005284286: +L_OBJC_IMAGE_INFO_044375a4329d08dc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_40f5b12005284286 -L_OBJC_METH_VAR_NAME_40f5b12005284286: + .globl L_OBJC_METH_VAR_NAME_044375a4329d08dc +L_OBJC_METH_VAR_NAME_044375a4329d08dc: .asciz "someSelector" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_40f5b12005284286 + .globl L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_40f5b12005284286: - .long L_OBJC_METH_VAR_NAME_40f5b12005284286 +L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc: + .long L_OBJC_METH_VAR_NAME_044375a4329d08dc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_904c14aa63c4eec9 + .globl L_OBJC_IMAGE_INFO_cb49b9ab1b00e328 .p2align 2 -L_OBJC_IMAGE_INFO_904c14aa63c4eec9: +L_OBJC_IMAGE_INFO_cb49b9ab1b00e328: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 -L_OBJC_METH_VAR_NAME_904c14aa63c4eec9: + .globl L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 +L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328: .asciz "init" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9 + .globl L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9: - .long L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 +L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328: + .long L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_b1ab35d3713395f9 + .globl L_OBJC_IMAGE_INFO_dcb825748735621d .p2align 2 -L_OBJC_IMAGE_INFO_b1ab35d3713395f9: +L_OBJC_IMAGE_INFO_dcb825748735621d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 -L_OBJC_METH_VAR_NAME_b1ab35d3713395f9: + .globl L_OBJC_METH_VAR_NAME_dcb825748735621d +L_OBJC_METH_VAR_NAME_dcb825748735621d: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9 + .globl L_OBJC_SELECTOR_REFERENCES_dcb825748735621d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9: - .long L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 +L_OBJC_SELECTOR_REFERENCES_dcb825748735621d: + .long L_OBJC_METH_VAR_NAME_dcb825748735621d .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_31f63858e271db32 + .globl L_OBJC_IMAGE_INFO_457d234345d46cbe .p2align 2 -L_OBJC_IMAGE_INFO_31f63858e271db32: +L_OBJC_IMAGE_INFO_457d234345d46cbe: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_31f63858e271db32 -L_OBJC_METH_VAR_NAME_31f63858e271db32: + .globl L_OBJC_METH_VAR_NAME_457d234345d46cbe +L_OBJC_METH_VAR_NAME_457d234345d46cbe: .asciz "generic:selector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_31f63858e271db32 + .globl L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe .p2align 2 -L_OBJC_SELECTOR_REFERENCES_31f63858e271db32: - .long L_OBJC_METH_VAR_NAME_31f63858e271db32 +L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe: + .long L_OBJC_METH_VAR_NAME_457d234345d46cbe .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cdfe92d39025fdf4 + .globl L_OBJC_IMAGE_INFO_f16064a6f68ca673 .p2align 2 -L_OBJC_IMAGE_INFO_cdfe92d39025fdf4: +L_OBJC_IMAGE_INFO_f16064a6f68ca673: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 -L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4: + .globl L_OBJC_METH_VAR_NAME_f16064a6f68ca673 +L_OBJC_METH_VAR_NAME_f16064a6f68ca673: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4 + .globl L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4: - .long L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 +L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673: + .long L_OBJC_METH_VAR_NAME_f16064a6f68ca673 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_79bd65c86d46fbf1 + .globl L_OBJC_IMAGE_INFO_9f134b97cb598446 .p2align 2 -L_OBJC_IMAGE_INFO_79bd65c86d46fbf1: +L_OBJC_IMAGE_INFO_9f134b97cb598446: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 -L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1: + .globl L_OBJC_METH_VAR_NAME_9f134b97cb598446 +L_OBJC_METH_VAR_NAME_9f134b97cb598446: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1 + .globl L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1: - .long L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 +L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446: + .long L_OBJC_METH_VAR_NAME_9f134b97cb598446 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_8e0840c6b39b7720 + .globl L_OBJC_IMAGE_INFO_e76e01e8b2327e5d .p2align 2 -L_OBJC_IMAGE_INFO_8e0840c6b39b7720: +L_OBJC_IMAGE_INFO_e76e01e8b2327e5d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 -L_OBJC_METH_VAR_NAME_8e0840c6b39b7720: + .globl L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d +L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720 + .globl L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d .p2align 2 -L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720: - .long L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 +L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d: + .long L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d .subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86_64.s b/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86_64.s index 429887c29..787f51ed8 100644 --- a/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86_64.s +++ b/test-assembly/crates/test_msg_send_static_sel/expected/apple-x86_64.s @@ -5,7 +5,7 @@ _handle_with_sel: push rbp mov rbp, rsp - mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_40f5b12005284286] + mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc] pop rbp jmp _objc_msgSend @@ -16,8 +16,8 @@ _handle_alloc_init: mov rbp, rsp push rbx push rax - mov rbx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9] - mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9] + mov rbx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328] + mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_dcb825748735621d] call _objc_msgSend mov rdi, rax mov rsi, rbx @@ -34,15 +34,15 @@ _use_generic: push rbx push rax mov rbx, rdi - mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4] - mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32] + mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673] + mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe] call _objc_msgSend - mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1] - mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32] + mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446] + mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe] mov rdi, rbx call _objc_msgSend - mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720] - mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_31f63858e271db32] + mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d] + mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe] mov rdi, rbx add rsp, 8 pop rbx @@ -50,122 +50,122 @@ _use_generic: jmp _objc_msgSend .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_40f5b12005284286 + .globl L_OBJC_IMAGE_INFO_044375a4329d08dc .p2align 2 -L_OBJC_IMAGE_INFO_40f5b12005284286: +L_OBJC_IMAGE_INFO_044375a4329d08dc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_40f5b12005284286 -L_OBJC_METH_VAR_NAME_40f5b12005284286: + .globl L_OBJC_METH_VAR_NAME_044375a4329d08dc +L_OBJC_METH_VAR_NAME_044375a4329d08dc: .asciz "someSelector" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_40f5b12005284286 + .globl L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc .p2align 3 -L_OBJC_SELECTOR_REFERENCES_40f5b12005284286: - .quad L_OBJC_METH_VAR_NAME_40f5b12005284286 +L_OBJC_SELECTOR_REFERENCES_044375a4329d08dc: + .quad L_OBJC_METH_VAR_NAME_044375a4329d08dc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_904c14aa63c4eec9 + .globl L_OBJC_IMAGE_INFO_cb49b9ab1b00e328 .p2align 2 -L_OBJC_IMAGE_INFO_904c14aa63c4eec9: +L_OBJC_IMAGE_INFO_cb49b9ab1b00e328: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 -L_OBJC_METH_VAR_NAME_904c14aa63c4eec9: + .globl L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 +L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328: .asciz "init" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9 + .globl L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_904c14aa63c4eec9: - .quad L_OBJC_METH_VAR_NAME_904c14aa63c4eec9 +L_OBJC_SELECTOR_REFERENCES_cb49b9ab1b00e328: + .quad L_OBJC_METH_VAR_NAME_cb49b9ab1b00e328 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_b1ab35d3713395f9 + .globl L_OBJC_IMAGE_INFO_dcb825748735621d .p2align 2 -L_OBJC_IMAGE_INFO_b1ab35d3713395f9: +L_OBJC_IMAGE_INFO_dcb825748735621d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 -L_OBJC_METH_VAR_NAME_b1ab35d3713395f9: + .globl L_OBJC_METH_VAR_NAME_dcb825748735621d +L_OBJC_METH_VAR_NAME_dcb825748735621d: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9 + .globl L_OBJC_SELECTOR_REFERENCES_dcb825748735621d .p2align 3 -L_OBJC_SELECTOR_REFERENCES_b1ab35d3713395f9: - .quad L_OBJC_METH_VAR_NAME_b1ab35d3713395f9 +L_OBJC_SELECTOR_REFERENCES_dcb825748735621d: + .quad L_OBJC_METH_VAR_NAME_dcb825748735621d .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_31f63858e271db32 + .globl L_OBJC_IMAGE_INFO_457d234345d46cbe .p2align 2 -L_OBJC_IMAGE_INFO_31f63858e271db32: +L_OBJC_IMAGE_INFO_457d234345d46cbe: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_31f63858e271db32 -L_OBJC_METH_VAR_NAME_31f63858e271db32: + .globl L_OBJC_METH_VAR_NAME_457d234345d46cbe +L_OBJC_METH_VAR_NAME_457d234345d46cbe: .asciz "generic:selector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_31f63858e271db32 + .globl L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe .p2align 3 -L_OBJC_SELECTOR_REFERENCES_31f63858e271db32: - .quad L_OBJC_METH_VAR_NAME_31f63858e271db32 +L_OBJC_SELECTOR_REFERENCES_457d234345d46cbe: + .quad L_OBJC_METH_VAR_NAME_457d234345d46cbe .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cdfe92d39025fdf4 + .globl L_OBJC_IMAGE_INFO_f16064a6f68ca673 .p2align 2 -L_OBJC_IMAGE_INFO_cdfe92d39025fdf4: +L_OBJC_IMAGE_INFO_f16064a6f68ca673: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 -L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4: + .globl L_OBJC_METH_VAR_NAME_f16064a6f68ca673 +L_OBJC_METH_VAR_NAME_f16064a6f68ca673: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4 + .globl L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_cdfe92d39025fdf4: - .quad L_OBJC_METH_VAR_NAME_cdfe92d39025fdf4 +L_OBJC_SELECTOR_REFERENCES_f16064a6f68ca673: + .quad L_OBJC_METH_VAR_NAME_f16064a6f68ca673 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_79bd65c86d46fbf1 + .globl L_OBJC_IMAGE_INFO_9f134b97cb598446 .p2align 2 -L_OBJC_IMAGE_INFO_79bd65c86d46fbf1: +L_OBJC_IMAGE_INFO_9f134b97cb598446: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 -L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1: + .globl L_OBJC_METH_VAR_NAME_9f134b97cb598446 +L_OBJC_METH_VAR_NAME_9f134b97cb598446: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1 + .globl L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_79bd65c86d46fbf1: - .quad L_OBJC_METH_VAR_NAME_79bd65c86d46fbf1 +L_OBJC_SELECTOR_REFERENCES_9f134b97cb598446: + .quad L_OBJC_METH_VAR_NAME_9f134b97cb598446 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_8e0840c6b39b7720 + .globl L_OBJC_IMAGE_INFO_e76e01e8b2327e5d .p2align 2 -L_OBJC_IMAGE_INFO_8e0840c6b39b7720: +L_OBJC_IMAGE_INFO_e76e01e8b2327e5d: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 -L_OBJC_METH_VAR_NAME_8e0840c6b39b7720: + .globl L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d +L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d: .asciz "performSelector:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720 + .globl L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d .p2align 3 -L_OBJC_SELECTOR_REFERENCES_8e0840c6b39b7720: - .quad L_OBJC_METH_VAR_NAME_8e0840c6b39b7720 +L_OBJC_SELECTOR_REFERENCES_e76e01e8b2327e5d: + .quad L_OBJC_METH_VAR_NAME_e76e01e8b2327e5d .subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/gnustep-x86.s b/test-assembly/crates/test_msg_send_static_sel/expected/gnustep-x86.s new file mode 100644 index 000000000..c690d3633 --- /dev/null +++ b/test-assembly/crates/test_msg_send_static_sel/expected/gnustep-x86.s @@ -0,0 +1,3 @@ + .text + .intel_syntax noprefix + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_msg_send_static_sel/expected/gnustep-x86_64.s b/test-assembly/crates/test_msg_send_static_sel/expected/gnustep-x86_64.s new file mode 100644 index 000000000..c690d3633 --- /dev/null +++ b/test-assembly/crates/test_msg_send_static_sel/expected/gnustep-x86_64.s @@ -0,0 +1,3 @@ + .text + .intel_syntax noprefix + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_msg_send_static_sel/lib.rs b/test-assembly/crates/test_msg_send_static_sel/lib.rs index dc17ab031..7829ec218 100644 --- a/test-assembly/crates/test_msg_send_static_sel/lib.rs +++ b/test-assembly/crates/test_msg_send_static_sel/lib.rs @@ -1,4 +1,5 @@ //! Test how static selectors work in relation to `msg_send!` and `msg_send_id!` +#![cfg(feature = "apple")] use objc2::rc::{Id, Shared}; use objc2::runtime::{Class, Object, Sel}; use objc2::{msg_send, msg_send_id, sel}; diff --git a/test-assembly/crates/test_msg_send_zero_cost/expected/apple-old-x86.s b/test-assembly/crates/test_msg_send_zero_cost/expected/apple-old-x86.s deleted file mode 100644 index abb608b6c..000000000 --- a/test-assembly/crates/test_msg_send_zero_cost/expected/apple-old-x86.s +++ /dev/null @@ -1,39 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .intel_syntax noprefix - .globl _handle - .p2align 4, 0x90 -_handle: - push ebp - mov ebp, esp - pop ebp - jmp _objc_msgSend - - .globl _handle_with_sel - .p2align 4, 0x90 -_handle_with_sel: - push ebp - mov ebp, esp - sub esp, 8 - call L1$pb -L1$pb: - pop eax - sub esp, 8 - push dword ptr [eax + _SEL_REF-L1$pb] - push dword ptr [ebp + 8] - call _objc_msgSend - add esp, 24 - pop ebp - ret - - .section __TEXT,__const - .globl _SEL -_SEL: - .asciz "someSelector" - - .section __DATA,__const - .globl _SEL_REF - .p2align 2 -_SEL_REF: - .long _SEL - -.subsections_via_symbols diff --git a/test-assembly/crates/test_msg_send_zero_cost/expected/gnustep-x86.s b/test-assembly/crates/test_msg_send_zero_cost/expected/gnustep-x86.s new file mode 100644 index 000000000..a5bb1db58 --- /dev/null +++ b/test-assembly/crates/test_msg_send_zero_cost/expected/gnustep-x86.s @@ -0,0 +1,81 @@ + .text + .intel_syntax noprefix + .section .text.handle,"ax",@progbits + .globl handle + .p2align 4, 0x90 + .type handle,@function +handle: + push ebx + push edi + push esi + mov esi, dword ptr [esp + 16] + mov edi, dword ptr [esp + 20] + call .L0$pb +.L0$pb: + pop ebx +.Ltmp0: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb) + sub esp, 8 + push edi + push esi + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end0: + .size handle, .Lfunc_end0-handle + + .section .text.handle_with_sel,"ax",@progbits + .globl handle_with_sel + .p2align 4, 0x90 + .type handle_with_sel,@function +handle_with_sel: + push ebx + push edi + push esi + call .L1$pb +.L1$pb: + pop ebx + mov esi, dword ptr [esp + 16] +.Ltmp1: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp1-.L1$pb) + mov eax, dword ptr [ebx + SEL_REF@GOT] + mov edi, dword ptr [eax] + sub esp, 8 + push edi + push esi + call objc_msg_lookup@PLT + add esp, 8 + push edi + push esi + call eax + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end1: + .size handle_with_sel, .Lfunc_end1-handle_with_sel + + .type SEL,@object + .section .rodata.SEL,"a",@progbits + .globl SEL +SEL: + .asciz "someSelector" + .size SEL, 13 + + .type SEL_REF,@object + .section .data.rel.ro.SEL_REF,"aw",@progbits + .globl SEL_REF + .p2align 2 +SEL_REF: + .long SEL + .size SEL_REF, 4 + + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_msg_send_zero_cost/expected/gnustep-x86_64.s b/test-assembly/crates/test_msg_send_zero_cost/expected/gnustep-x86_64.s new file mode 100644 index 000000000..41524e771 --- /dev/null +++ b/test-assembly/crates/test_msg_send_zero_cost/expected/gnustep-x86_64.s @@ -0,0 +1,60 @@ + .text + .intel_syntax noprefix + .section .text.handle,"ax",@progbits + .globl handle + .p2align 4, 0x90 + .type handle,@function +handle: + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + add rsp, 8 + pop rbx + pop r14 + jmp rax +.Lfunc_end0: + .size handle, .Lfunc_end0-handle + + .section .text.handle_with_sel,"ax",@progbits + .globl handle_with_sel + .p2align 4, 0x90 + .type handle_with_sel,@function +handle_with_sel: + push r14 + push rbx + push rax + mov r14, rdi + mov rax, qword ptr [rip + SEL_REF@GOTPCREL] + mov rbx, qword ptr [rax] + mov rsi, rbx + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, r14 + mov rsi, rbx + add rsp, 8 + pop rbx + pop r14 + jmp rax +.Lfunc_end1: + .size handle_with_sel, .Lfunc_end1-handle_with_sel + + .type SEL,@object + .section .rodata.SEL,"a",@progbits + .globl SEL +SEL: + .asciz "someSelector" + .size SEL, 13 + + .type SEL_REF,@object + .section .data.rel.ro.SEL_REF,"aw",@progbits + .globl SEL_REF + .p2align 3 +SEL_REF: + .quad SEL + .size SEL_REF, 8 + + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_retain_autoreleased/expected/apple-old-x86.s b/test-assembly/crates/test_retain_autoreleased/expected/apple-old-x86.s deleted file mode 100644 index b2ebee241..000000000 --- a/test-assembly/crates/test_retain_autoreleased/expected/apple-old-x86.s +++ /dev/null @@ -1,25 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .intel_syntax noprefix - .globl _handle - .p2align 4, 0x90 -_handle: - push ebp - mov ebp, esp - sub esp, 8 - mov eax, dword ptr [ebp + 8] - mov ecx, dword ptr [ebp + 12] - mov dword ptr [esp + 4], ecx - mov dword ptr [esp], eax - call _objc_msgSend - ## InlineAsm Start - - mov ebp, ebp - - ## InlineAsm End - mov dword ptr [esp], eax - call _objc_retainAutoreleasedReturnValue - add esp, 8 - pop ebp - ret - -.subsections_via_symbols diff --git a/test-assembly/crates/test_retain_autoreleased/expected/gnustep-x86.s b/test-assembly/crates/test_retain_autoreleased/expected/gnustep-x86.s new file mode 100644 index 000000000..e4858e071 --- /dev/null +++ b/test-assembly/crates/test_retain_autoreleased/expected/gnustep-x86.s @@ -0,0 +1,35 @@ + .text + .intel_syntax noprefix + .section .text.handle,"ax",@progbits + .globl handle + .p2align 4, 0x90 + .type handle,@function +handle: + push ebx + push edi + push esi + sub esp, 16 + mov esi, dword ptr [esp + 32] + mov edi, dword ptr [esp + 36] + call .L0$pb +.L0$pb: + pop ebx +.Ltmp0: + add ebx, offset _GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb) + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call objc_msg_lookup@PLT + mov dword ptr [esp + 4], edi + mov dword ptr [esp], esi + call eax + mov dword ptr [esp], eax + call objc_retainAutoreleasedReturnValue@PLT + add esp, 16 + pop esi + pop edi + pop ebx + ret +.Lfunc_end0: + .size handle, .Lfunc_end0-handle + + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_retain_autoreleased/expected/gnustep-x86_64.s b/test-assembly/crates/test_retain_autoreleased/expected/gnustep-x86_64.s new file mode 100644 index 000000000..c2ab1a16e --- /dev/null +++ b/test-assembly/crates/test_retain_autoreleased/expected/gnustep-x86_64.s @@ -0,0 +1,25 @@ + .text + .intel_syntax noprefix + .section .text.handle,"ax",@progbits + .globl handle + .p2align 4, 0x90 + .type handle,@function +handle: + push r14 + push rbx + push rax + mov r14, rsi + mov rbx, rdi + call qword ptr [rip + objc_msg_lookup@GOTPCREL] + mov rdi, rbx + mov rsi, r14 + call rax + mov rdi, rax + add rsp, 8 + pop rbx + pop r14 + jmp qword ptr [rip + objc_retainAutoreleasedReturnValue@GOTPCREL] +.Lfunc_end0: + .size handle, .Lfunc_end0-handle + + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_static_sel/Cargo.toml b/test-assembly/crates/test_static_sel/Cargo.toml index 09350f273..998f3a544 100644 --- a/test-assembly/crates/test_static_sel/Cargo.toml +++ b/test-assembly/crates/test_static_sel/Cargo.toml @@ -8,18 +8,18 @@ publish = false path = "lib.rs" [dependencies] -objc2 = { path = "../../../objc2", default-features = false } +objc2 = { path = "../../../objc2", default-features = false, optional = true } [features] default = ["apple", "std"] -std = ["objc2/std"] +std = ["objc2?/std"] # Runtime -apple = ["objc2/apple"] -gnustep-1-7 = ["objc2/gnustep-1-7"] -gnustep-1-8 = ["gnustep-1-7", "objc2/gnustep-1-8"] -gnustep-1-9 = ["gnustep-1-8", "objc2/gnustep-1-9"] -gnustep-2-0 = ["gnustep-1-9", "objc2/gnustep-2-0"] -gnustep-2-1 = ["gnustep-2-0", "objc2/gnustep-2-1"] +apple = ["objc2", "objc2?/apple"] +gnustep-1-7 = ["objc2?/gnustep-1-7"] +gnustep-1-8 = ["gnustep-1-7", "objc2?/gnustep-1-8"] +gnustep-1-9 = ["gnustep-1-8", "objc2?/gnustep-1-9"] +gnustep-2-0 = ["gnustep-1-9", "objc2?/gnustep-2-0"] +gnustep-2-1 = ["gnustep-2-0", "objc2?/gnustep-2-1"] # Hack to prevent the feature flag from being enabled in the entire project -assembly-features = ["objc2/unstable-static-sel-inlined"] +assembly-features = ["objc2?/unstable-static-sel-inlined"] diff --git a/test-assembly/crates/test_static_sel/expected/apple-aarch64.s b/test-assembly/crates/test_static_sel/expected/apple-aarch64.s index d2e9de2e9..0828856d7 100644 --- a/test-assembly/crates/test_static_sel/expected/apple-aarch64.s +++ b/test-assembly/crates/test_static_sel/expected/apple-aarch64.s @@ -3,9 +3,9 @@ .p2align 2 _get_sel: Lloh0: - adrp x8, L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0@PAGE Lloh1: - ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9@PAGEOFF] + ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0@PAGEOFF] ret .loh AdrpLdr Lloh0, Lloh1 @@ -13,9 +13,9 @@ Lloh1: .p2align 2 _get_same_sel: Lloh2: - adrp x8, L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83@PAGE Lloh3: - ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35@PAGEOFF] + ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83@PAGEOFF] ret .loh AdrpLdr Lloh2, Lloh3 @@ -23,13 +23,13 @@ Lloh3: .p2align 2 _get_common_twice: Lloh4: - adrp x8, L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013@PAGE Lloh5: - ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77@PAGEOFF] + ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013@PAGEOFF] Lloh6: - adrp x8, L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1@PAGE Lloh7: - ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7@PAGEOFF] + ldr x1, [x8, L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1@PAGEOFF] ret .loh AdrpLdr Lloh6, Lloh7 .loh AdrpAdrp Lloh4, Lloh6 @@ -39,9 +39,9 @@ Lloh7: .p2align 2 _get_different_sel: Lloh8: - adrp x8, L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0@PAGE + adrp x8, L_OBJC_SELECTOR_REFERENCES_25911857653c680c@PAGE Lloh9: - ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0@PAGEOFF] + ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_25911857653c680c@PAGEOFF] ret .loh AdrpLdr Lloh8, Lloh9 @@ -54,21 +54,21 @@ _unused_sel: .p2align 2 _use_fns: Lloh10: - adrp x9, L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9@PAGE + adrp x9, L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0@PAGE Lloh11: - ldr x9, [x9, L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9@PAGEOFF] + ldr x9, [x9, L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0@PAGEOFF] Lloh12: - adrp x10, L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35@PAGE + adrp x10, L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83@PAGE Lloh13: - ldr x10, [x10, L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35@PAGEOFF] + ldr x10, [x10, L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83@PAGEOFF] Lloh14: - adrp x11, L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0@PAGE + adrp x11, L_OBJC_SELECTOR_REFERENCES_25911857653c680c@PAGE Lloh15: - ldr x11, [x11, L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0@PAGEOFF] + ldr x11, [x11, L_OBJC_SELECTOR_REFERENCES_25911857653c680c@PAGEOFF] Lloh16: - adrp x12, L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99@PAGE + adrp x12, L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534@PAGE Lloh17: - ldr x12, [x12, L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99@PAGEOFF] + ldr x12, [x12, L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534@PAGEOFF] stp x9, x10, [x8] stp x11, x12, [x8, #16] ret @@ -81,9 +81,9 @@ Lloh17: .p2align 2 _use_same_twice: Lloh18: - adrp x9, L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9@PAGE + adrp x9, L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0@PAGE Lloh19: - ldr x9, [x9, L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9@PAGEOFF] + ldr x9, [x9, L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0@PAGEOFF] stp x9, x9, [x8] ret .loh AdrpLdr Lloh18, Lloh19 @@ -94,139 +94,139 @@ _use_in_loop: ret .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_68381ba894e318e9 + .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_IMAGE_INFO_68381ba894e318e9: +L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_68381ba894e318e9 -L_OBJC_METH_VAR_NAME_68381ba894e318e9: + .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_68381ba894e318e9 + .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9: - .quad L_OBJC_METH_VAR_NAME_68381ba894e318e9 +L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0: + .quad L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35 + .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35: +L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 -L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35: + .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_cd2fd6e7d2adcc35 + .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35: - .quad L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 +L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83: + .quad L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_e4a45d49bfea5d77 + .globl L_OBJC_IMAGE_INFO_b3892a38c2415013 .p2align 2 -L_OBJC_IMAGE_INFO_e4a45d49bfea5d77: +L_OBJC_IMAGE_INFO_b3892a38c2415013: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 -L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77: + .globl L_OBJC_METH_VAR_NAME_b3892a38c2415013 +L_OBJC_METH_VAR_NAME_b3892a38c2415013: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77 + .globl L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77: - .quad L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 +L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013: + .quad L_OBJC_METH_VAR_NAME_b3892a38c2415013 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_33db9f67352fe9a7 + .globl L_OBJC_IMAGE_INFO_9a8b70db451c67b1 .p2align 2 -L_OBJC_IMAGE_INFO_33db9f67352fe9a7: +L_OBJC_IMAGE_INFO_9a8b70db451c67b1: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 -L_OBJC_METH_VAR_NAME_33db9f67352fe9a7: + .globl L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 +L_OBJC_METH_VAR_NAME_9a8b70db451c67b1: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7 + .globl L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7: - .quad L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 +L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1: + .quad L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_bb37877368f0b7a0 + .globl L_OBJC_IMAGE_INFO_25911857653c680c .p2align 2 -L_OBJC_IMAGE_INFO_bb37877368f0b7a0: +L_OBJC_IMAGE_INFO_25911857653c680c: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 -L_OBJC_METH_VAR_NAME_bb37877368f0b7a0: + .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_bb37877368f0b7a0 + .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c .p2align 3 -L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0: - .quad L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 +L_OBJC_SELECTOR_REFERENCES_25911857653c680c: + .quad L_OBJC_METH_VAR_NAME_25911857653c680c .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_2c505e110d181b25 + .globl L_OBJC_IMAGE_INFO_baa3c09478169afc .p2align 2 -L_OBJC_IMAGE_INFO_2c505e110d181b25: +L_OBJC_IMAGE_INFO_baa3c09478169afc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2c505e110d181b25 -L_OBJC_METH_VAR_NAME_2c505e110d181b25: + .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_2c505e110d181b25 + .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc .p2align 3 -L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25: - .quad L_OBJC_METH_VAR_NAME_2c505e110d181b25 +L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc: + .quad L_OBJC_METH_VAR_NAME_baa3c09478169afc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99 + .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 .p2align 2 -L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99: +L_OBJC_IMAGE_INFO_acb291d82e56f534: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 -L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99: + .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_5419c3f7fc0a6f99 + .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99: - .quad L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 +L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534: + .quad L_OBJC_METH_VAR_NAME_acb291d82e56f534 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_f46908e864c86c6b + .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e .p2align 2 -L_OBJC_IMAGE_INFO_f46908e864c86c6b: +L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f46908e864c86c6b -L_OBJC_METH_VAR_NAME_f46908e864c86c6b: + .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_f46908e864c86c6b + .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e .p2align 3 -L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b: - .quad L_OBJC_METH_VAR_NAME_f46908e864c86c6b +L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: + .quad L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e .subsections_via_symbols diff --git a/test-assembly/crates/test_static_sel/expected/apple-armv7.s b/test-assembly/crates/test_static_sel/expected/apple-armv7.s index e2bd0d6dc..60886455f 100644 --- a/test-assembly/crates/test_static_sel/expected/apple-armv7.s +++ b/test-assembly/crates/test_static_sel/expected/apple-armv7.s @@ -4,8 +4,8 @@ .p2align 2 .code 32 _get_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC0_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC0_0+8)) + 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 @@ -14,8 +14,8 @@ LPC0_0: .p2align 2 .code 32 _get_same_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-(LPC1_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-(LPC1_0+8)) + 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 @@ -24,12 +24,12 @@ LPC1_0: .p2align 2 .code 32 _get_common_twice: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77-(LPC2_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77-(LPC2_0+8)) + movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013-(LPC2_0+8)) + movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013-(LPC2_0+8)) LPC2_0: ldr r0, [pc, r0] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7-(LPC2_1+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7-(LPC2_1+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1-(LPC2_1+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1-(LPC2_1+8)) LPC2_1: ldr r1, [pc, r1] bx lr @@ -38,8 +38,8 @@ LPC2_1: .p2align 2 .code 32 _get_different_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-(LPC3_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-(LPC3_0+8)) + 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 @@ -54,20 +54,20 @@ _unused_sel: .p2align 2 .code 32 _use_fns: - movw r9, :lower16:(L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99-(LPC5_0+8)) - movt r9, :upper16:(L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99-(LPC5_0+8)) + 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_bb37877368f0b7a0-(LPC5_1+8)) - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-(LPC5_1+8)) + 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_cd2fd6e7d2adcc35-(LPC5_2+8)) - movt r3, :upper16:(L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-(LPC5_2+8)) + 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_68381ba894e318e9-(LPC5_3+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC5_3+8)) + 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] @@ -79,8 +79,8 @@ LPC5_3: .p2align 2 .code 32 _use_same_twice: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC6_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC6_0+8)) + 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] @@ -94,139 +94,139 @@ _use_in_loop: bx lr .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_68381ba894e318e9 + .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_IMAGE_INFO_68381ba894e318e9: +L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_68381ba894e318e9 -L_OBJC_METH_VAR_NAME_68381ba894e318e9: + .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_68381ba894e318e9 + .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9: - .long L_OBJC_METH_VAR_NAME_68381ba894e318e9 +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_cd2fd6e7d2adcc35 + .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35: +L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 -L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35: + .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_cd2fd6e7d2adcc35 + .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35: - .long L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 +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_e4a45d49bfea5d77 + .globl L_OBJC_IMAGE_INFO_b3892a38c2415013 .p2align 2 -L_OBJC_IMAGE_INFO_e4a45d49bfea5d77: +L_OBJC_IMAGE_INFO_b3892a38c2415013: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 -L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77: + .globl L_OBJC_METH_VAR_NAME_b3892a38c2415013 +L_OBJC_METH_VAR_NAME_b3892a38c2415013: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77 + .globl L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77: - .long L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 +L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013: + .long L_OBJC_METH_VAR_NAME_b3892a38c2415013 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_33db9f67352fe9a7 + .globl L_OBJC_IMAGE_INFO_9a8b70db451c67b1 .p2align 2 -L_OBJC_IMAGE_INFO_33db9f67352fe9a7: +L_OBJC_IMAGE_INFO_9a8b70db451c67b1: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 -L_OBJC_METH_VAR_NAME_33db9f67352fe9a7: + .globl L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 +L_OBJC_METH_VAR_NAME_9a8b70db451c67b1: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7 + .globl L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7: - .long L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 +L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1: + .long L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_bb37877368f0b7a0 + .globl L_OBJC_IMAGE_INFO_25911857653c680c .p2align 2 -L_OBJC_IMAGE_INFO_bb37877368f0b7a0: +L_OBJC_IMAGE_INFO_25911857653c680c: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 -L_OBJC_METH_VAR_NAME_bb37877368f0b7a0: + .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_bb37877368f0b7a0 + .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c .p2align 2 -L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0: - .long L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 +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_2c505e110d181b25 + .globl L_OBJC_IMAGE_INFO_baa3c09478169afc .p2align 2 -L_OBJC_IMAGE_INFO_2c505e110d181b25: +L_OBJC_IMAGE_INFO_baa3c09478169afc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2c505e110d181b25 -L_OBJC_METH_VAR_NAME_2c505e110d181b25: + .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_2c505e110d181b25 + .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25: - .long L_OBJC_METH_VAR_NAME_2c505e110d181b25 +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_5419c3f7fc0a6f99 + .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 .p2align 2 -L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99: +L_OBJC_IMAGE_INFO_acb291d82e56f534: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 -L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99: + .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_5419c3f7fc0a6f99 + .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99: - .long L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 +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_f46908e864c86c6b + .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e .p2align 2 -L_OBJC_IMAGE_INFO_f46908e864c86c6b: +L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f46908e864c86c6b -L_OBJC_METH_VAR_NAME_f46908e864c86c6b: + .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_f46908e864c86c6b + .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e .p2align 2 -L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b: - .long L_OBJC_METH_VAR_NAME_f46908e864c86c6b +L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: + .long L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e .subsections_via_symbols diff --git a/test-assembly/crates/test_static_sel/expected/apple-armv7s.s b/test-assembly/crates/test_static_sel/expected/apple-armv7s.s index e2bd0d6dc..60886455f 100644 --- a/test-assembly/crates/test_static_sel/expected/apple-armv7s.s +++ b/test-assembly/crates/test_static_sel/expected/apple-armv7s.s @@ -4,8 +4,8 @@ .p2align 2 .code 32 _get_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC0_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC0_0+8)) + 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 @@ -14,8 +14,8 @@ LPC0_0: .p2align 2 .code 32 _get_same_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-(LPC1_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-(LPC1_0+8)) + 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 @@ -24,12 +24,12 @@ LPC1_0: .p2align 2 .code 32 _get_common_twice: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77-(LPC2_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77-(LPC2_0+8)) + movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013-(LPC2_0+8)) + movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013-(LPC2_0+8)) LPC2_0: ldr r0, [pc, r0] - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7-(LPC2_1+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7-(LPC2_1+8)) + movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1-(LPC2_1+8)) + movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1-(LPC2_1+8)) LPC2_1: ldr r1, [pc, r1] bx lr @@ -38,8 +38,8 @@ LPC2_1: .p2align 2 .code 32 _get_different_sel: - movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-(LPC3_0+8)) - movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-(LPC3_0+8)) + 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 @@ -54,20 +54,20 @@ _unused_sel: .p2align 2 .code 32 _use_fns: - movw r9, :lower16:(L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99-(LPC5_0+8)) - movt r9, :upper16:(L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99-(LPC5_0+8)) + 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_bb37877368f0b7a0-(LPC5_1+8)) - movt r2, :upper16:(L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-(LPC5_1+8)) + 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_cd2fd6e7d2adcc35-(LPC5_2+8)) - movt r3, :upper16:(L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-(LPC5_2+8)) + 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_68381ba894e318e9-(LPC5_3+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC5_3+8)) + 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] @@ -79,8 +79,8 @@ LPC5_3: .p2align 2 .code 32 _use_same_twice: - movw r1, :lower16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC6_0+8)) - movt r1, :upper16:(L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-(LPC6_0+8)) + 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] @@ -94,139 +94,139 @@ _use_in_loop: bx lr .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_68381ba894e318e9 + .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_IMAGE_INFO_68381ba894e318e9: +L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_68381ba894e318e9 -L_OBJC_METH_VAR_NAME_68381ba894e318e9: + .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_68381ba894e318e9 + .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9: - .long L_OBJC_METH_VAR_NAME_68381ba894e318e9 +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_cd2fd6e7d2adcc35 + .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35: +L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 -L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35: + .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_cd2fd6e7d2adcc35 + .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35: - .long L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 +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_e4a45d49bfea5d77 + .globl L_OBJC_IMAGE_INFO_b3892a38c2415013 .p2align 2 -L_OBJC_IMAGE_INFO_e4a45d49bfea5d77: +L_OBJC_IMAGE_INFO_b3892a38c2415013: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 -L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77: + .globl L_OBJC_METH_VAR_NAME_b3892a38c2415013 +L_OBJC_METH_VAR_NAME_b3892a38c2415013: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77 + .globl L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77: - .long L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 +L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013: + .long L_OBJC_METH_VAR_NAME_b3892a38c2415013 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_33db9f67352fe9a7 + .globl L_OBJC_IMAGE_INFO_9a8b70db451c67b1 .p2align 2 -L_OBJC_IMAGE_INFO_33db9f67352fe9a7: +L_OBJC_IMAGE_INFO_9a8b70db451c67b1: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 -L_OBJC_METH_VAR_NAME_33db9f67352fe9a7: + .globl L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 +L_OBJC_METH_VAR_NAME_9a8b70db451c67b1: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7 + .globl L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7: - .long L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 +L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1: + .long L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_bb37877368f0b7a0 + .globl L_OBJC_IMAGE_INFO_25911857653c680c .p2align 2 -L_OBJC_IMAGE_INFO_bb37877368f0b7a0: +L_OBJC_IMAGE_INFO_25911857653c680c: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 -L_OBJC_METH_VAR_NAME_bb37877368f0b7a0: + .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_bb37877368f0b7a0 + .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c .p2align 2 -L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0: - .long L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 +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_2c505e110d181b25 + .globl L_OBJC_IMAGE_INFO_baa3c09478169afc .p2align 2 -L_OBJC_IMAGE_INFO_2c505e110d181b25: +L_OBJC_IMAGE_INFO_baa3c09478169afc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2c505e110d181b25 -L_OBJC_METH_VAR_NAME_2c505e110d181b25: + .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_2c505e110d181b25 + .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25: - .long L_OBJC_METH_VAR_NAME_2c505e110d181b25 +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_5419c3f7fc0a6f99 + .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 .p2align 2 -L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99: +L_OBJC_IMAGE_INFO_acb291d82e56f534: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 -L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99: + .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_5419c3f7fc0a6f99 + .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99: - .long L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 +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_f46908e864c86c6b + .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e .p2align 2 -L_OBJC_IMAGE_INFO_f46908e864c86c6b: +L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f46908e864c86c6b -L_OBJC_METH_VAR_NAME_f46908e864c86c6b: + .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_f46908e864c86c6b + .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e .p2align 2 -L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b: - .long L_OBJC_METH_VAR_NAME_f46908e864c86c6b +L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: + .long L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e .subsections_via_symbols diff --git a/test-assembly/crates/test_static_sel/expected/apple-old-x86.s b/test-assembly/crates/test_static_sel/expected/apple-old-x86.s index 2b7e444d1..07636ad27 100644 --- a/test-assembly/crates/test_static_sel/expected/apple-old-x86.s +++ b/test-assembly/crates/test_static_sel/expected/apple-old-x86.s @@ -8,7 +8,7 @@ _get_sel: call L0$pb L0$pb: pop eax - mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-L0$pb] + mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-L0$pb] pop ebp ret @@ -20,7 +20,7 @@ _get_same_sel: call L1$pb L1$pb: pop eax - mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-L1$pb] + mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-L1$pb] pop ebp ret @@ -32,8 +32,8 @@ _get_common_twice: call L2$pb L2$pb: pop ecx - mov eax, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77-L2$pb] - mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7-L2$pb] + mov eax, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013-L2$pb] + mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1-L2$pb] pop ebp ret @@ -45,7 +45,7 @@ _get_different_sel: call L3$pb L3$pb: pop eax - mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-L3$pb] + mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_25911857653c680c-L3$pb] pop ebp ret @@ -68,10 +68,10 @@ _use_fns: L5$pb: pop ecx mov eax, dword ptr [ebp + 8] - mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-L5$pb] - mov esi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-L5$pb] - mov edi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-L5$pb] - mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99-L5$pb] + mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-L5$pb] + mov esi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-L5$pb] + mov edi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_25911857653c680c-L5$pb] + mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534-L5$pb] mov dword ptr [eax], edx mov dword ptr [eax + 4], esi mov dword ptr [eax + 8], edi @@ -90,7 +90,7 @@ _use_same_twice: L6$pb: pop ecx mov eax, dword ptr [ebp + 8] - mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-L6$pb] + mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-L6$pb] mov dword ptr [eax], ecx mov dword ptr [eax + 4], ecx pop ebp @@ -105,139 +105,139 @@ _use_in_loop: ret .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_68381ba894e318e9 + .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_IMAGE_INFO_68381ba894e318e9: +L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_68381ba894e318e9 -L_OBJC_METH_VAR_NAME_68381ba894e318e9: + .globl L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0 +L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0: .asciz "simple" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9 + .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9: - .long L_OBJC_METH_VAR_NAME_68381ba894e318e9 +L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0: + .long L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35 + .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35: +L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 -L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35: + .globl L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83 +L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83: .asciz "simple" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35 + .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35: - .long L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 +L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83: + .long L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_e4a45d49bfea5d77 + .globl L_OBJC_IMAGE_INFO_b3892a38c2415013 .p2align 2 -L_OBJC_IMAGE_INFO_e4a45d49bfea5d77: +L_OBJC_IMAGE_INFO_b3892a38c2415013: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 -L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77: + .globl L_OBJC_METH_VAR_NAME_b3892a38c2415013 +L_OBJC_METH_VAR_NAME_b3892a38c2415013: .asciz "alloc" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77 + .globl L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77: - .long L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 +L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013: + .long L_OBJC_METH_VAR_NAME_b3892a38c2415013 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_33db9f67352fe9a7 + .globl L_OBJC_IMAGE_INFO_9a8b70db451c67b1 .p2align 2 -L_OBJC_IMAGE_INFO_33db9f67352fe9a7: +L_OBJC_IMAGE_INFO_9a8b70db451c67b1: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 -L_OBJC_METH_VAR_NAME_33db9f67352fe9a7: + .globl L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 +L_OBJC_METH_VAR_NAME_9a8b70db451c67b1: .asciz "alloc" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7 + .globl L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7: - .long L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 +L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1: + .long L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_bb37877368f0b7a0 + .globl L_OBJC_IMAGE_INFO_25911857653c680c .p2align 2 -L_OBJC_IMAGE_INFO_bb37877368f0b7a0: +L_OBJC_IMAGE_INFO_25911857653c680c: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 -L_OBJC_METH_VAR_NAME_bb37877368f0b7a0: + .globl L_OBJC_METH_VAR_NAME_25911857653c680c +L_OBJC_METH_VAR_NAME_25911857653c680c: .asciz "i:am:different:" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0 + .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c .p2align 2 -L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0: - .long L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 +L_OBJC_SELECTOR_REFERENCES_25911857653c680c: + .long L_OBJC_METH_VAR_NAME_25911857653c680c .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_2c505e110d181b25 + .globl L_OBJC_IMAGE_INFO_baa3c09478169afc .p2align 2 -L_OBJC_IMAGE_INFO_2c505e110d181b25: +L_OBJC_IMAGE_INFO_baa3c09478169afc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2c505e110d181b25 -L_OBJC_METH_VAR_NAME_2c505e110d181b25: + .globl L_OBJC_METH_VAR_NAME_baa3c09478169afc +L_OBJC_METH_VAR_NAME_baa3c09478169afc: .asciz "unused" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25 + .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25: - .long L_OBJC_METH_VAR_NAME_2c505e110d181b25 +L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc: + .long L_OBJC_METH_VAR_NAME_baa3c09478169afc .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99 + .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 .p2align 2 -L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99: +L_OBJC_IMAGE_INFO_acb291d82e56f534: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 -L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99: + .globl L_OBJC_METH_VAR_NAME_acb291d82e56f534 +L_OBJC_METH_VAR_NAME_acb291d82e56f534: .asciz "fourthSel" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99 + .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99: - .long L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 +L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534: + .long L_OBJC_METH_VAR_NAME_acb291d82e56f534 .section __OBJC,__image_info - .globl L_OBJC_IMAGE_INFO_f46908e864c86c6b + .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e .p2align 2 -L_OBJC_IMAGE_INFO_f46908e864c86c6b: +L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: .asciz "\000\000\000\000@\000\000" .section __TEXT,__cstring,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f46908e864c86c6b -L_OBJC_METH_VAR_NAME_f46908e864c86c6b: + .globl L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e +L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e: .asciz "loopedSelector" .section __OBJC,__message_refs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b + .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e .p2align 2 -L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b: - .long L_OBJC_METH_VAR_NAME_f46908e864c86c6b +L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: + .long L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e .subsections_via_symbols diff --git a/test-assembly/crates/test_static_sel/expected/apple-x86.s b/test-assembly/crates/test_static_sel/expected/apple-x86.s index 71cd6cc7c..3cb85f6c7 100644 --- a/test-assembly/crates/test_static_sel/expected/apple-x86.s +++ b/test-assembly/crates/test_static_sel/expected/apple-x86.s @@ -8,7 +8,7 @@ _get_sel: call L0$pb L0$pb: pop eax - mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-L0$pb] + mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-L0$pb] pop ebp ret @@ -20,7 +20,7 @@ _get_same_sel: call L1$pb L1$pb: pop eax - mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-L1$pb] + mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-L1$pb] pop ebp ret @@ -32,8 +32,8 @@ _get_common_twice: call L2$pb L2$pb: pop ecx - mov eax, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77-L2$pb] - mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7-L2$pb] + mov eax, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013-L2$pb] + mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1-L2$pb] pop ebp ret @@ -45,7 +45,7 @@ _get_different_sel: call L3$pb L3$pb: pop eax - mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-L3$pb] + mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_25911857653c680c-L3$pb] pop ebp ret @@ -68,10 +68,10 @@ _use_fns: L5$pb: pop ecx mov eax, dword ptr [ebp + 8] - mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-L5$pb] - mov esi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35-L5$pb] - mov edi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0-L5$pb] - mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99-L5$pb] + mov edx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-L5$pb] + mov esi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83-L5$pb] + mov edi, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_25911857653c680c-L5$pb] + mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534-L5$pb] mov dword ptr [eax], edx mov dword ptr [eax + 4], esi mov dword ptr [eax + 8], edi @@ -90,7 +90,7 @@ _use_same_twice: L6$pb: pop ecx mov eax, dword ptr [ebp + 8] - mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9-L6$pb] + mov ecx, dword ptr [ecx + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0-L6$pb] mov dword ptr [eax], ecx mov dword ptr [eax + 4], ecx pop ebp @@ -105,139 +105,139 @@ _use_in_loop: ret .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_68381ba894e318e9 + .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_IMAGE_INFO_68381ba894e318e9: +L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_68381ba894e318e9 -L_OBJC_METH_VAR_NAME_68381ba894e318e9: + .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_68381ba894e318e9 + .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9: - .long L_OBJC_METH_VAR_NAME_68381ba894e318e9 +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_cd2fd6e7d2adcc35 + .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35: +L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 -L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35: + .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_cd2fd6e7d2adcc35 + .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35: - .long L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 +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_e4a45d49bfea5d77 + .globl L_OBJC_IMAGE_INFO_b3892a38c2415013 .p2align 2 -L_OBJC_IMAGE_INFO_e4a45d49bfea5d77: +L_OBJC_IMAGE_INFO_b3892a38c2415013: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 -L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77: + .globl L_OBJC_METH_VAR_NAME_b3892a38c2415013 +L_OBJC_METH_VAR_NAME_b3892a38c2415013: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77 + .globl L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77: - .long L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 +L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013: + .long L_OBJC_METH_VAR_NAME_b3892a38c2415013 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_33db9f67352fe9a7 + .globl L_OBJC_IMAGE_INFO_9a8b70db451c67b1 .p2align 2 -L_OBJC_IMAGE_INFO_33db9f67352fe9a7: +L_OBJC_IMAGE_INFO_9a8b70db451c67b1: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 -L_OBJC_METH_VAR_NAME_33db9f67352fe9a7: + .globl L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 +L_OBJC_METH_VAR_NAME_9a8b70db451c67b1: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7 + .globl L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7: - .long L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 +L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1: + .long L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_bb37877368f0b7a0 + .globl L_OBJC_IMAGE_INFO_25911857653c680c .p2align 2 -L_OBJC_IMAGE_INFO_bb37877368f0b7a0: +L_OBJC_IMAGE_INFO_25911857653c680c: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 -L_OBJC_METH_VAR_NAME_bb37877368f0b7a0: + .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_bb37877368f0b7a0 + .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c .p2align 2 -L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0: - .long L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 +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_2c505e110d181b25 + .globl L_OBJC_IMAGE_INFO_baa3c09478169afc .p2align 2 -L_OBJC_IMAGE_INFO_2c505e110d181b25: +L_OBJC_IMAGE_INFO_baa3c09478169afc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2c505e110d181b25 -L_OBJC_METH_VAR_NAME_2c505e110d181b25: + .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_2c505e110d181b25 + .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc .p2align 2 -L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25: - .long L_OBJC_METH_VAR_NAME_2c505e110d181b25 +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_5419c3f7fc0a6f99 + .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 .p2align 2 -L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99: +L_OBJC_IMAGE_INFO_acb291d82e56f534: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 -L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99: + .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_5419c3f7fc0a6f99 + .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 .p2align 2 -L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99: - .long L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 +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_f46908e864c86c6b + .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e .p2align 2 -L_OBJC_IMAGE_INFO_f46908e864c86c6b: +L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f46908e864c86c6b -L_OBJC_METH_VAR_NAME_f46908e864c86c6b: + .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_f46908e864c86c6b + .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e .p2align 2 -L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b: - .long L_OBJC_METH_VAR_NAME_f46908e864c86c6b +L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: + .long L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e .subsections_via_symbols diff --git a/test-assembly/crates/test_static_sel/expected/apple-x86_64.s b/test-assembly/crates/test_static_sel/expected/apple-x86_64.s index 61117fae6..3f20904cf 100644 --- a/test-assembly/crates/test_static_sel/expected/apple-x86_64.s +++ b/test-assembly/crates/test_static_sel/expected/apple-x86_64.s @@ -5,7 +5,7 @@ _get_sel: push rbp mov rbp, rsp - mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9] + mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0] pop rbp ret @@ -14,7 +14,7 @@ _get_sel: _get_same_sel: push rbp mov rbp, rsp - mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35] + mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83] pop rbp ret @@ -23,8 +23,8 @@ _get_same_sel: _get_common_twice: push rbp mov rbp, rsp - mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77] - mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7] + mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013] + mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1] pop rbp ret @@ -33,7 +33,7 @@ _get_common_twice: _get_different_sel: push rbp mov rbp, rsp - mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0] + mov rax, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_25911857653c680c] pop rbp ret @@ -51,10 +51,10 @@ _use_fns: push rbp mov rbp, rsp mov rax, rdi - mov rcx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9] - mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35] - mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0] - mov rdi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99] + mov rcx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0] + mov rdx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83] + mov rsi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_25911857653c680c] + mov rdi, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534] mov qword ptr [rax], rcx mov qword ptr [rax + 8], rdx mov qword ptr [rax + 16], rsi @@ -68,7 +68,7 @@ _use_same_twice: push rbp mov rbp, rsp mov rax, rdi - mov rcx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9] + mov rcx, qword ptr [rip + L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0] mov qword ptr [rdi], rcx mov qword ptr [rdi + 8], rcx pop rbp @@ -83,139 +83,139 @@ _use_in_loop: ret .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_68381ba894e318e9 + .globl L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0 .p2align 2 -L_OBJC_IMAGE_INFO_68381ba894e318e9: +L_OBJC_IMAGE_INFO_2ff5c2d33acc98c0: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_68381ba894e318e9 -L_OBJC_METH_VAR_NAME_68381ba894e318e9: + .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_68381ba894e318e9 + .globl L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_68381ba894e318e9: - .quad L_OBJC_METH_VAR_NAME_68381ba894e318e9 +L_OBJC_SELECTOR_REFERENCES_2ff5c2d33acc98c0: + .quad L_OBJC_METH_VAR_NAME_2ff5c2d33acc98c0 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35 + .globl L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83 .p2align 2 -L_OBJC_IMAGE_INFO_cd2fd6e7d2adcc35: +L_OBJC_IMAGE_INFO_6e17eb9d3fa7fa83: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 -L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35: + .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_cd2fd6e7d2adcc35 + .globl L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_cd2fd6e7d2adcc35: - .quad L_OBJC_METH_VAR_NAME_cd2fd6e7d2adcc35 +L_OBJC_SELECTOR_REFERENCES_6e17eb9d3fa7fa83: + .quad L_OBJC_METH_VAR_NAME_6e17eb9d3fa7fa83 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_e4a45d49bfea5d77 + .globl L_OBJC_IMAGE_INFO_b3892a38c2415013 .p2align 2 -L_OBJC_IMAGE_INFO_e4a45d49bfea5d77: +L_OBJC_IMAGE_INFO_b3892a38c2415013: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 -L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77: + .globl L_OBJC_METH_VAR_NAME_b3892a38c2415013 +L_OBJC_METH_VAR_NAME_b3892a38c2415013: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77 + .globl L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_e4a45d49bfea5d77: - .quad L_OBJC_METH_VAR_NAME_e4a45d49bfea5d77 +L_OBJC_SELECTOR_REFERENCES_b3892a38c2415013: + .quad L_OBJC_METH_VAR_NAME_b3892a38c2415013 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_33db9f67352fe9a7 + .globl L_OBJC_IMAGE_INFO_9a8b70db451c67b1 .p2align 2 -L_OBJC_IMAGE_INFO_33db9f67352fe9a7: +L_OBJC_IMAGE_INFO_9a8b70db451c67b1: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 -L_OBJC_METH_VAR_NAME_33db9f67352fe9a7: + .globl L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 +L_OBJC_METH_VAR_NAME_9a8b70db451c67b1: .asciz "alloc" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .globl L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7 + .globl L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_33db9f67352fe9a7: - .quad L_OBJC_METH_VAR_NAME_33db9f67352fe9a7 +L_OBJC_SELECTOR_REFERENCES_9a8b70db451c67b1: + .quad L_OBJC_METH_VAR_NAME_9a8b70db451c67b1 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_bb37877368f0b7a0 + .globl L_OBJC_IMAGE_INFO_25911857653c680c .p2align 2 -L_OBJC_IMAGE_INFO_bb37877368f0b7a0: +L_OBJC_IMAGE_INFO_25911857653c680c: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 -L_OBJC_METH_VAR_NAME_bb37877368f0b7a0: + .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_bb37877368f0b7a0 + .globl L_OBJC_SELECTOR_REFERENCES_25911857653c680c .p2align 3 -L_OBJC_SELECTOR_REFERENCES_bb37877368f0b7a0: - .quad L_OBJC_METH_VAR_NAME_bb37877368f0b7a0 +L_OBJC_SELECTOR_REFERENCES_25911857653c680c: + .quad L_OBJC_METH_VAR_NAME_25911857653c680c .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_2c505e110d181b25 + .globl L_OBJC_IMAGE_INFO_baa3c09478169afc .p2align 2 -L_OBJC_IMAGE_INFO_2c505e110d181b25: +L_OBJC_IMAGE_INFO_baa3c09478169afc: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_2c505e110d181b25 -L_OBJC_METH_VAR_NAME_2c505e110d181b25: + .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_2c505e110d181b25 + .globl L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc .p2align 3 -L_OBJC_SELECTOR_REFERENCES_2c505e110d181b25: - .quad L_OBJC_METH_VAR_NAME_2c505e110d181b25 +L_OBJC_SELECTOR_REFERENCES_baa3c09478169afc: + .quad L_OBJC_METH_VAR_NAME_baa3c09478169afc .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99 + .globl L_OBJC_IMAGE_INFO_acb291d82e56f534 .p2align 2 -L_OBJC_IMAGE_INFO_5419c3f7fc0a6f99: +L_OBJC_IMAGE_INFO_acb291d82e56f534: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 -L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99: + .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_5419c3f7fc0a6f99 + .globl L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534 .p2align 3 -L_OBJC_SELECTOR_REFERENCES_5419c3f7fc0a6f99: - .quad L_OBJC_METH_VAR_NAME_5419c3f7fc0a6f99 +L_OBJC_SELECTOR_REFERENCES_acb291d82e56f534: + .quad L_OBJC_METH_VAR_NAME_acb291d82e56f534 .section __DATA,__objc_imageinfo,regular,no_dead_strip - .globl L_OBJC_IMAGE_INFO_f46908e864c86c6b + .globl L_OBJC_IMAGE_INFO_c831c01ba82dcc2e .p2align 2 -L_OBJC_IMAGE_INFO_f46908e864c86c6b: +L_OBJC_IMAGE_INFO_c831c01ba82dcc2e: .asciz "\000\000\000\000@\000\000" .section __TEXT,__objc_methname,cstring_literals - .globl L_OBJC_METH_VAR_NAME_f46908e864c86c6b -L_OBJC_METH_VAR_NAME_f46908e864c86c6b: + .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_f46908e864c86c6b + .globl L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e .p2align 3 -L_OBJC_SELECTOR_REFERENCES_f46908e864c86c6b: - .quad L_OBJC_METH_VAR_NAME_f46908e864c86c6b +L_OBJC_SELECTOR_REFERENCES_c831c01ba82dcc2e: + .quad L_OBJC_METH_VAR_NAME_c831c01ba82dcc2e .subsections_via_symbols diff --git a/test-assembly/crates/test_static_sel/expected/gnustep-x86.s b/test-assembly/crates/test_static_sel/expected/gnustep-x86.s new file mode 100644 index 000000000..c690d3633 --- /dev/null +++ b/test-assembly/crates/test_static_sel/expected/gnustep-x86.s @@ -0,0 +1,3 @@ + .text + .intel_syntax noprefix + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_static_sel/expected/gnustep-x86_64.s b/test-assembly/crates/test_static_sel/expected/gnustep-x86_64.s new file mode 100644 index 000000000..c690d3633 --- /dev/null +++ b/test-assembly/crates/test_static_sel/expected/gnustep-x86_64.s @@ -0,0 +1,3 @@ + .text + .intel_syntax noprefix + .section ".note.GNU-stack","",@progbits diff --git a/test-assembly/crates/test_static_sel/lib.rs b/test-assembly/crates/test_static_sel/lib.rs index 97b4d67c6..38711631e 100644 --- a/test-assembly/crates/test_static_sel/lib.rs +++ b/test-assembly/crates/test_static_sel/lib.rs @@ -1,4 +1,5 @@ //! Test the output of the `sel!` macro. +#![cfg(feature = "apple")] use objc2::runtime::Sel; use objc2::sel; diff --git a/test-assembly/src/lib.rs b/test-assembly/src/lib.rs index 0b7f6c9ab..053021dc8 100644 --- a/test-assembly/src/lib.rs +++ b/test-assembly/src/lib.rs @@ -4,6 +4,33 @@ use std::io; use std::path::Path; use std::path::PathBuf; +#[cfg(feature = "run")] +pub fn get_runtime() -> String { + use regex::Regex; + let re = Regex::new(r"--features[= ]+(([a-z0-9_-]+,?)+)").unwrap(); + + let combined = std::env::args().collect::>().join(" "); + + let result = re + .captures_iter(&combined) + .find_map(|c| { + c.get(1).unwrap().as_str().split(',').find_map(|f| match f { + "apple" => Some("apple"), + "gnustep-1-7" | "gnustep-1-8" | "gnustep-1-9" => Some("gnustep-old"), + "gnustep-2-0" | "gnustep-2-1" => Some("gnustep"), + _ => None, + }) + }) + .unwrap_or("apple") + .to_string(); + result +} + +#[cfg(not(feature = "run"))] +pub fn get_runtime() -> String { + panic!("`run` feature must be enabled") +} + fn strip_lines(data: &str, starts_with: &str) -> String { data.lines() .filter(|line| !line.trim_start().starts_with(starts_with)) @@ -35,8 +62,8 @@ fn strip_section(data: &str, section: &str) -> String { res } -pub fn read_assembly>(path: P) -> io::Result { - let s = fs::read_to_string(path)?; +pub fn read_assembly>(path: P, package_path: &Path) -> io::Result { + let s = fs::read_to_string(path.as_ref())?; let workspace_dir = Path::new(env!("CARGO_MANIFEST_DIR")) .parent() .unwrap() @@ -44,6 +71,17 @@ pub fn read_assembly>(path: P) -> io::Result { .to_str() .unwrap(); let s = s.replace(workspace_dir, "$WORKSPACE"); + let s = s.replace( + package_path + .as_os_str() + .to_str() + .unwrap() + .strip_prefix(workspace_dir) + .unwrap() + .strip_prefix('/') + .unwrap(), + "$DIR", + ); // HACK: Replace Objective-C image info for simulator targets let s = s.replace( ".asciz\t\"\\000\\000\\000\\000`\\000\\000\"", @@ -54,6 +92,7 @@ pub fn read_assembly>(path: P) -> io::Result { let s = strip_lines(&s, ".macosx_version_"); let s = strip_lines(&s, ".ios_version_"); let s = strip_lines(&s, ".build_version"); + let s = strip_lines(&s, ".file"); // Added in nightly-2022-07-21 let s = strip_lines(&s, ".no_dead_strip"); // We remove the __LLVM,__bitcode and __LLVM,__cmdline sections because diff --git a/test-assembly/src/main.rs b/test-assembly/src/main.rs index d870712c1..d5f8e8baf 100644 --- a/test-assembly/src/main.rs +++ b/test-assembly/src/main.rs @@ -16,14 +16,17 @@ use std::fs; use std::path::Path; use std::process::{Command, Stdio}; -use test_assembly::{get_artifact, read_assembly}; +use test_assembly::{get_artifact, get_runtime, read_assembly}; fn main() { let manifest_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let should_overwrite = option_env!("TEST_OVERWRITE").is_some(); + let should_overwrite = env::var("TEST_OVERWRITE") + .map(|var| var == "1") + .unwrap_or(false); let host = env!("TARGET"); println!("Host {host}"); + let runtime = get_runtime(); for entry in manifest_dir.join("crates").read_dir().unwrap() { let entry = entry.unwrap(); @@ -72,31 +75,44 @@ fn main() { if matches!(architecture, "i386" | "i686") { architecture = "x86"; }; + println!("Architecture {architecture}."); + + let mut runtime = &*runtime; if target == "i686-apple-darwin" { // Old ABI, we frequently have to do things differently there - architecture = "old-x86"; + runtime = "apple-old"; } - println!("Architecture {architecture}."); + println!("Runtime {runtime}."); let extension = artifact.extension().unwrap().to_str().unwrap(); let expected_file = package_path .join("expected") - .join(format!("apple-{architecture}.{extension}")); + .join(format!("{runtime}-{architecture}.{extension}")); + let expected_file = runtime + .strip_suffix("-old") + .map(|runtime| { + if expected_file.exists() { + expected_file.clone() + } else { + package_path + .join("expected") + .join(format!("{runtime}-{architecture}.{extension}")) + } + }) + .unwrap_or(expected_file); + println!("Expected file: {}", expected_file.display()); - let actual = read_assembly(&artifact).unwrap(); + let actual = read_assembly(&artifact, &package_path).unwrap(); if should_overwrite { fs::write(expected_file, actual).unwrap(); } else if let Ok(expected) = fs::read_to_string(expected_file) { if expected != actual { eprintln!("\n===Expected===\n{}\n===Actual===\n{}", expected, actual); - panic!("Expected and actual did not match."); + panic!("expected and actual did not match."); } } else { - panic!( - "Missing assembly output for architecture {}:\n{}", - architecture, actual - ); + panic!("missing assembly output for {runtime}-{architecture}"); } } }