From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp001-out.apm-internet.net (smtp001-out.apm-internet.net [85.119.248.222]) by sourceware.org (Postfix) with ESMTPS id 2FE8038432E0 for ; Sun, 4 Dec 2022 20:30:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2FE8038432E0 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=sandoe.co.uk Authentication-Results: sourceware.org; spf=none smtp.mailfrom=sandoe.co.uk Received: (qmail 3184 invoked from network); 4 Dec 2022 20:30:55 -0000 X-APM-Out-ID: 16701858550318 X-APM-Authkey: 257869/1(257869/1) 3 Received: from unknown (HELO smtpclient.apple) (81.138.1.83) by smtp001.apm-internet.net with SMTP; 4 Dec 2022 20:30:55 -0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: [PATCH] testsuite, X86, Darwin: Fix bf16 ABI tests for Mach-O/macOS ABI. From: Iain Sandoe In-Reply-To: Date: Sun, 4 Dec 2022 20:30:55 +0000 Cc: GCC Patches , crazylht@gmail.com Content-Transfer-Encoding: quoted-printable Message-Id: <47BE3C16-6C72-4F13-94D7-9754BD3DEE77@sandoe.co.uk> References: <20221204115150.35508-1-iain@sandoe.co.uk> To: Uros Bizjak X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_COUK,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,KAM_SHORT,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > On 4 Dec 2022, at 20:20, Uros Bizjak via Gcc-patches = wrote: >=20 > On Sun, Dec 4, 2022 at 12:51 PM Iain Sandoe = wrote: >>=20 >> This is almost a completely Darwin-local patch, but there is one = (repeated) >> place where a general change is needed - which is in making xmm_regs = and >> x87_regs extern in the three copies of args.h (this is consistent = with the >> other saved vars). These fails represent most of the current = testsuite noise >> on x86 Darwin. >>=20 >> tested on x86-64 Darwin and Linux. >>=20 >> OK for master? >> Iain >>=20 >> -- >8 -- >>=20 >> These tests have failed since introduction since they assume that the >> assembler output is ELF and that the ABI targeted supports the = addressing. >>=20 >> For Darwin, Mach-O and ABI we need to make several changes: >> 1. Use the __USER_LABEL__PREFIX__ >> 2. Remove the use of ELF-specific constructs (.size, .type etc.) >> 3. We cannot make direct access to common variables in the ABI, so = that we >> must move these to BSS. >>=20 >> Since that set is quite significant, I elected to make a separate = source >> section for Darwin. This is introduced by #elif defined(__APPLE__) = because >> __MACH__ is also used by HURD. >>=20 >> There are potentially other X86 targets (e.g. XCOFF) that could have = yet >> more changes, so I added a catchall section that #errors if the = object format >> is neither ELF or Mach-O. >>=20 >> Signed-off-by: Iain Sandoe >>=20 >> gcc/testsuite/ChangeLog: >>=20 >> * gcc.target/x86_64/abi/bf16/args.h: >> * gcc.target/x86_64/abi/bf16/asm-support.S: >> * gcc.target/x86_64/abi/bf16/m256bf16/args.h: >> * gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S: >> * gcc.target/x86_64/abi/bf16/m512bf16/args.h: >> * gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S: >=20 > Missing descriptions in ChangeLog entry. oops, here: gcc/testsuite/ChangeLog: * gcc.target/x86_64/abi/bf16/args.h: Make xmm_regs, x87_regs = extern. * gcc.target/x86_64/abi/bf16/m256bf16/args.h: Likewise. * gcc.target/x86_64/abi/bf16/m512bf16/args.h: Likewise. * gcc.target/x86_64/abi/bf16/asm-support.S: Add Mach-O variant. * gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S: Likewise. * gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S: Likewise. Iain. >=20 > Uros. >=20 >> --- >> .../gcc.target/x86_64/abi/bf16/args.h | 4 +- >> .../gcc.target/x86_64/abi/bf16/asm-support.S | 105 +++++++++++++++ >> .../x86_64/abi/bf16/m256bf16/args.h | 4 +- >> .../x86_64/abi/bf16/m256bf16/asm-support.S | 107 +++++++++++++++ >> .../x86_64/abi/bf16/m512bf16/args.h | 4 +- >> .../x86_64/abi/bf16/m512bf16/asm-support.S | 123 = ++++++++++++++++++ >> 6 files changed, 341 insertions(+), 6 deletions(-) >>=20 >> diff --git a/gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h = b/gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h >> index 11d7e2b3a1c..95f9a394f2c 100644 >> --- a/gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h >> +++ b/gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h >> @@ -42,8 +42,8 @@ typedef union { >> } X87_T; >> extern void (*callthis)(void); >> extern unsigned long long = rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15; >> -XMM_T xmm_regs[16]; >> -X87_T x87_regs[8]; >> +extern XMM_T xmm_regs[16]; >> +extern X87_T x87_regs[8]; >> extern volatile unsigned long long volatile_var; >> extern void snapshot (void); >> extern void snapshot_ret (void); >> diff --git a/gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S = b/gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S >> index 7559aa910c4..331bf92d761 100644 >> --- a/gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S >> +++ b/gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S >> @@ -1,3 +1,5 @@ >> + >> +#ifdef __ELF__ >> .text >> .p2align 4,,15 >> .globl snapshot >> @@ -82,3 +84,106 @@ snapshot_ret: >> #ifdef __linux__ >> .section .note.GNU-stack,"",@progbits >> #endif >> + >> +#elif defined(__APPLE__) >> + .text >> + .p2align 4,,15 >> + .globl _snapshot >> +_snapshot: >> +LFB3: >> + movq %rax, _rax(%rip) >> + movq %rbx, _rbx(%rip) >> + movq %rcx, _rcx(%rip) >> + movq %rdx, _rdx(%rip) >> + movq %rdi, _rdi(%rip) >> + movq %rsi, _rsi(%rip) >> + movq %rbp, _rbp(%rip) >> + movq %rsp, _rsp(%rip) >> + movq %r8, _r8(%rip) >> + movq %r9, _r9(%rip) >> + movq %r10, _r10(%rip) >> + movq %r11, _r11(%rip) >> + movq %r12, _r12(%rip) >> + movq %r13, _r13(%rip) >> + movq %r14, _r14(%rip) >> + movq %r15, _r15(%rip) >> + movdqu %xmm0, _xmm_regs+0(%rip) >> + movdqu %xmm1, _xmm_regs+16(%rip) >> + movdqu %xmm2, _xmm_regs+32(%rip) >> + movdqu %xmm3, _xmm_regs+48(%rip) >> + movdqu %xmm4, _xmm_regs+64(%rip) >> + movdqu %xmm5, _xmm_regs+80(%rip) >> + movdqu %xmm6, _xmm_regs+96(%rip) >> + movdqu %xmm7, _xmm_regs+112(%rip) >> + movdqu %xmm8, _xmm_regs+128(%rip) >> + movdqu %xmm9, _xmm_regs+144(%rip) >> + movdqu %xmm10, _xmm_regs+160(%rip) >> + movdqu %xmm11, _xmm_regs+176(%rip) >> + movdqu %xmm12, _xmm_regs+192(%rip) >> + movdqu %xmm13, _xmm_regs+208(%rip) >> + movdqu %xmm14, _xmm_regs+224(%rip) >> + movdqu %xmm15, _xmm_regs+240(%rip) >> + jmp *_callthis(%rip) >> +LFE3: >> + >> + .p2align 4,,15 >> + .globl _snapshot_ret >> +_snapshot_ret: >> + movq %rdi, _rdi(%rip) >> + subq $8, %rsp >> + call *_callthis(%rip) >> + addq $8, %rsp >> + movq %rax, _rax(%rip) >> + movq %rdx, _rdx(%rip) >> + movdqu %xmm0, _xmm_regs+0(%rip) >> + movdqu %xmm1, _xmm_regs+16(%rip) >> + fstpt _x87_regs(%rip) >> + fstpt _x87_regs+16(%rip) >> + fldt _x87_regs+16(%rip) >> + fldt _x87_regs(%rip) >> + ret >> + >> + .globl _callthis >> + .zerofill __DATA,__bss,_callthis,8,3 >> + .globl _rax >> + .zerofill __DATA,__bss,_rax,8,3 >> + .globl _rbx >> + .zerofill __DATA,__bss,_rbx,8,3 >> + .globl _rcx >> + .zerofill __DATA,__bss,_rcx,8,3 >> + .globl _rdx >> + .zerofill __DATA,__bss,_rdx,8,3 >> + .globl _rsi >> + .zerofill __DATA,__bss,_rsi,8,3 >> + .globl _rdi >> + .zerofill __DATA,__bss,_rdi,8,3 >> + .globl _rsp >> + .zerofill __DATA,__bss,_rsp,8,3 >> + .globl _rbp >> + .zerofill __DATA,__bss,_rbp,8,3 >> + .globl _r8 >> + .zerofill __DATA,__bss,_r8,8,3 >> + .globl _r9 >> + .zerofill __DATA,__bss,_r9,8,3 >> + .globl _r10 >> + .zerofill __DATA,__bss,_r10,8,3 >> + .globl _r11 >> + .zerofill __DATA,__bss,_r11,8,3 >> + .globl _r12 >> + .zerofill __DATA,__bss,_r12,8,3 >> + .globl _r13 >> + .zerofill __DATA,__bss,_r13,8,3 >> + .globl _r14 >> + .zerofill __DATA,__bss,_r14,8,3 >> + .globl _r15 >> + .zerofill __DATA,__bss,_r15,8,3 >> + .globl _xmm_regs >> + .zerofill __DATA,__bss,_xmm_regs,256,5 >> + .globl _x87_regs >> + .zerofill __DATA,__bss,_x87_regs,128,5 >> + .globl _volatile_var >> + .zerofill __DATA,__bss,_volatile_var,8,3 >> + >> +#else >> +#error unknown object format >> +#endif >> diff --git a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h = b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h >> index 94627ffbd44..1027742cbb2 100644 >> --- a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h >> +++ b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h >> @@ -50,8 +50,8 @@ typedef union { >> } X87_T; >> extern void (*callthis)(void); >> extern unsigned long long = rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15; >> -YMM_T ymm_regs[16]; >> -X87_T x87_regs[8]; >> +extern YMM_T ymm_regs[16]; >> +extern X87_T x87_regs[8]; >> extern volatile unsigned long long volatile_var; >> extern void snapshot (void); >> extern void snapshot_ret (void); >> diff --git = a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S = b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S >> index 24c8b3c9023..171654aa4db 100644 >> --- a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S >> +++ b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S >> @@ -1,3 +1,5 @@ >> + >> +#ifdef __ELF__ >> .text >> .p2align 4,,15 >> .globl snapshot >> @@ -82,3 +84,108 @@ snapshot_ret: >> #ifdef __linux__ >> .section .note.GNU-stack,"",@progbits >> #endif >> + >> +#elif defined(__APPLE__) >> + >> + .text >> + .p2align 4,,15 >> + .globl _snapshot >> +_snapshot: >> +.LFB3: >> + movq %rax, _rax(%rip) >> + movq %rbx, _rbx(%rip) >> + movq %rcx, _rcx(%rip) >> + movq %rdx, _rdx(%rip) >> + movq %rdi, _rdi(%rip) >> + movq %rsi, _rsi(%rip) >> + movq %rbp, _rbp(%rip) >> + movq %rsp, _rsp(%rip) >> + movq %r8, _r8(%rip) >> + movq %r9, _r9(%rip) >> + movq %r10, _r10(%rip) >> + movq %r11, _r11(%rip) >> + movq %r12, _r12(%rip) >> + movq %r13, _r13(%rip) >> + movq %r14, _r14(%rip) >> + movq %r15, _r15(%rip) >> + vmovdqu %ymm0, _ymm_regs+0(%rip) >> + vmovdqu %ymm1, _ymm_regs+32(%rip) >> + vmovdqu %ymm2, _ymm_regs+64(%rip) >> + vmovdqu %ymm3, _ymm_regs+96(%rip) >> + vmovdqu %ymm4, _ymm_regs+128(%rip) >> + vmovdqu %ymm5, _ymm_regs+160(%rip) >> + vmovdqu %ymm6, _ymm_regs+192(%rip) >> + vmovdqu %ymm7, _ymm_regs+224(%rip) >> + vmovdqu %ymm8, _ymm_regs+256(%rip) >> + vmovdqu %ymm9, _ymm_regs+288(%rip) >> + vmovdqu %ymm10, _ymm_regs+320(%rip) >> + vmovdqu %ymm11, _ymm_regs+352(%rip) >> + vmovdqu %ymm12, _ymm_regs+384(%rip) >> + vmovdqu %ymm13, _ymm_regs+416(%rip) >> + vmovdqu %ymm14, _ymm_regs+448(%rip) >> + vmovdqu %ymm15, _ymm_regs+480(%rip) >> + jmp *_callthis(%rip) >> +.LFE3: >> + >> + .p2align 4,,15 >> + .globl _snapshot_ret >> +_snapshot_ret: >> + movq %rdi, _rdi(%rip) >> + subq $8, %rsp >> + call *_callthis(%rip) >> + addq $8, %rsp >> + movq %rax, _rax(%rip) >> + movq %rdx, _rdx(%rip) >> + vmovdqu %ymm0, _ymm_regs+0(%rip) >> + vmovdqu %ymm1, _ymm_regs+32(%rip) >> + fstpt _x87_regs(%rip) >> + fstpt _x87_regs+16(%rip) >> + fldt _x87_regs+16(%rip) >> + fldt _x87_regs(%rip) >> + ret >> + >> + .globl _callthis >> + .zerofill __DATA,__bss,_callthis,8,3 >> + .globl _rax >> + .zerofill __DATA,__bss,_rax,8,3 >> + .globl _rbx >> + .zerofill __DATA,__bss,_rbx,8,3 >> + .globl _rcx >> + .zerofill __DATA,__bss,_rcx,8,3 >> + .globl _rdx >> + .zerofill __DATA,__bss,_rdx,8,3 >> + .globl _rsi >> + .zerofill __DATA,__bss,_rsi,8,3 >> + .globl _rdi >> + .zerofill __DATA,__bss,_rdi,8,3 >> + .globl _rsp >> + .zerofill __DATA,__bss,_rsp,8,3 >> + .globl _rbp >> + .zerofill __DATA,__bss,_rbp,8,3 >> + .globl _r8 >> + .zerofill __DATA,__bss,_r8,8,3 >> + .globl _r9 >> + .zerofill __DATA,__bss,_r9,8,3 >> + .globl _r10 >> + .zerofill __DATA,__bss,_r10,8,3 >> + .globl _r11 >> + .zerofill __DATA,__bss,_r11,8,3 >> + .globl _r12 >> + .zerofill __DATA,__bss,_r12,8,3 >> + .globl _r13 >> + .zerofill __DATA,__bss,_r13,8,3 >> + .globl _r14 >> + .zerofill __DATA,__bss,_r14,8,3 >> + .globl _r15 >> + .zerofill __DATA,__bss,_r15,8,3 >> + .globl _ymm_regs >> + .zerofill __DATA,__bss,_ymm_regs,512,5 >> + .globl _x87_regs >> + .zerofill __DATA,__bss,_x87_regs,128,5 >> + .globl _volatile_var >> + .zerofill __DATA,__bss,_volatile_var,8,3 >> + >> +#else >> +#error unknown object format >> +#endif >> + >> diff --git a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h = b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h >> index 64b24783833..f9710bae347 100644 >> --- a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h >> +++ b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h >> @@ -51,8 +51,8 @@ typedef union { >> } X87_T; >> extern void (*callthis)(void); >> extern unsigned long long = rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15; >> -ZMM_T zmm_regs[32]; >> -X87_T x87_regs[8]; >> +extern ZMM_T zmm_regs[32]; >> +extern X87_T x87_regs[8]; >> extern volatile unsigned long long volatile_var; >> extern void snapshot (void); >> extern void snapshot_ret (void); >> diff --git = a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S = b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S >> index 86d54d11c58..9dc6d173a61 100644 >> --- a/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S >> +++ b/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S >> @@ -1,3 +1,5 @@ >> + >> +#ifdef __ELF__ >> .text >> .p2align 4,,15 >> .globl snapshot >> @@ -98,3 +100,124 @@ snapshot_ret: >> #ifdef __linux__ >> .section .note.GNU-stack,"",@progbits >> #endif >> + >> +#elif defined(__APPLE__) >> + >> + .text >> + .p2align 4,,15 >> + .globl _snapshot >> +_snapshot: >> +.LFB3: >> + movq %rax, _rax(%rip) >> + movq %rbx, _rbx(%rip) >> + movq %rcx, _rcx(%rip) >> + movq %rdx, _rdx(%rip) >> + movq %rdi, _rdi(%rip) >> + movq %rsi, _rsi(%rip) >> + movq %rbp, _rbp(%rip) >> + movq %rsp, _rsp(%rip) >> + movq %r8, _r8(%rip) >> + movq %r9, _r9(%rip) >> + movq %r10, _r10(%rip) >> + movq %r11, _r11(%rip) >> + movq %r12, _r12(%rip) >> + movq %r13, _r13(%rip) >> + movq %r14, _r14(%rip) >> + movq %r15, _r15(%rip) >> + vmovdqu32 %zmm0, _zmm_regs+0(%rip) >> + vmovdqu32 %zmm1, _zmm_regs+64(%rip) >> + vmovdqu32 %zmm2, _zmm_regs+128(%rip) >> + vmovdqu32 %zmm3, _zmm_regs+192(%rip) >> + vmovdqu32 %zmm4, _zmm_regs+256(%rip) >> + vmovdqu32 %zmm5, _zmm_regs+320(%rip) >> + vmovdqu32 %zmm6, _zmm_regs+384(%rip) >> + vmovdqu32 %zmm7, _zmm_regs+448(%rip) >> + vmovdqu32 %zmm8, _zmm_regs+512(%rip) >> + vmovdqu32 %zmm9, _zmm_regs+576(%rip) >> + vmovdqu32 %zmm10, _zmm_regs+640(%rip) >> + vmovdqu32 %zmm11, _zmm_regs+704(%rip) >> + vmovdqu32 %zmm12, _zmm_regs+768(%rip) >> + vmovdqu32 %zmm13, _zmm_regs+832(%rip) >> + vmovdqu32 %zmm14, _zmm_regs+896(%rip) >> + vmovdqu32 %zmm15, _zmm_regs+960(%rip) >> + vmovdqu32 %zmm16, _zmm_regs+1024(%rip) >> + vmovdqu32 %zmm17, _zmm_regs+1088(%rip) >> + vmovdqu32 %zmm18, _zmm_regs+1152(%rip) >> + vmovdqu32 %zmm19, _zmm_regs+1216(%rip) >> + vmovdqu32 %zmm20, _zmm_regs+1280(%rip) >> + vmovdqu32 %zmm21, _zmm_regs+1344(%rip) >> + vmovdqu32 %zmm22, _zmm_regs+1408(%rip) >> + vmovdqu32 %zmm23, _zmm_regs+1472(%rip) >> + vmovdqu32 %zmm24, _zmm_regs+1536(%rip) >> + vmovdqu32 %zmm25, _zmm_regs+1600(%rip) >> + vmovdqu32 %zmm26, _zmm_regs+1664(%rip) >> + vmovdqu32 %zmm27, _zmm_regs+1728(%rip) >> + vmovdqu32 %zmm28, _zmm_regs+1792(%rip) >> + vmovdqu32 %zmm29, _zmm_regs+1856(%rip) >> + vmovdqu32 %zmm30, _zmm_regs+1920(%rip) >> + vmovdqu32 %zmm31, _zmm_regs+1984(%rip) >> + jmp *_callthis(%rip) >> +.LFE3: >> + >> + .p2align 4,,15 >> + .globl _snapshot_ret >> +_snapshot_ret: >> + movq %rdi, _rdi(%rip) >> + subq $8, %rsp >> + call *_callthis(%rip) >> + addq $8, %rsp >> + movq %rax, _rax(%rip) >> + movq %rdx, _rdx(%rip) >> + vmovdqu32 %zmm0, _zmm_regs+0(%rip) >> + vmovdqu32 %zmm1, _zmm_regs+64(%rip) >> + fstpt _x87_regs(%rip) >> + fstpt _x87_regs+16(%rip) >> + fldt _x87_regs+16(%rip) >> + fldt _x87_regs(%rip) >> + ret >> + >> + .globl _callthis >> + .zerofill __DATA,__bss,_callthis,8,3 >> + .globl _rax >> + .zerofill __DATA,__bss,_rax,8,3 >> + .globl _rbx >> + .zerofill __DATA,__bss,_rbx,8,3 >> + .globl _rcx >> + .zerofill __DATA,__bss,_rcx,8,3 >> + .globl _rdx >> + .zerofill __DATA,__bss,_rdx,8,3 >> + .globl _rsi >> + .zerofill __DATA,__bss,_rsi,8,3 >> + .globl _rdi >> + .zerofill __DATA,__bss,_rdi,8,3 >> + .globl _rsp >> + .zerofill __DATA,__bss,_rsp,8,3 >> + .globl _rbp >> + .zerofill __DATA,__bss,_rbp,8,3 >> + .globl _r8 >> + .zerofill __DATA,__bss,_r8,8,3 >> + .globl _r9 >> + .zerofill __DATA,__bss,_r9,8,3 >> + .globl _r10 >> + .zerofill __DATA,__bss,_r10,8,3 >> + .globl _r11 >> + .zerofill __DATA,__bss,_r11,8,3 >> + .globl _r12 >> + .zerofill __DATA,__bss,_r12,8,3 >> + .globl _r13 >> + .zerofill __DATA,__bss,_r13,8,3 >> + .globl _r14 >> + .zerofill __DATA,__bss,_r14,8,3 >> + .globl _r15 >> + .zerofill __DATA,__bss,_r15,8,3 >> + .globl _zmm_regs >> + .zerofill __DATA,__bss,_zmm_regs,2048,6 >> + .globl _x87_regs >> + .zerofill __DATA,__bss,_x87_regs,128,5 >> + .globl _volatile_var >> + .zerofill __DATA,__bss,_volatile_var,8,3 >> + >> +#else >> +#error unknown object format >> +#endif >> + >> -- >> 2.37.1 (Apple Git-137.1)