On Mon, Dec 5, 2022 at 10:17 PM Iain Sandoe <i...@sandoe.co.uk> wrote: > > Hi Uros, > > > On 5 Dec 2022, at 21:07, Uros Bizjak via Gcc-patches > > <gcc-patches@gcc.gnu.org> wrote: > > > > On Mon, Dec 5, 2022 at 3:54 PM Iain Sandoe <i...@sandoe.co.uk> wrote: > >> > >> Hi Uros, > >> > >>> On 5 Dec 2022, at 10:37, Uros Bizjak via Gcc-patches > >>> <gcc-patches@gcc.gnu.org> wrote: > >>> > >>> On Sun, Dec 4, 2022 at 9:30 PM Iain Sandoe <i...@sandoe.co.uk> wrote: > >>>> > >> > >>>> 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. > >>> > >>> Please note that in other directories asm-support-darwin.s is > >>> introduced and included via .exp file. Is there a reason a different > >>> approach is introduced here? > >> > >> Since it seems that testcases get added and amended without considering any > >> sub-target apart from x86_64-linux-gnu (even by very experienced > >> contributors), > >> I was hoping that the Darwin section might prompt folks to remember that > >> there > >> are several other sub-targets. > >> > >> However, the main thing is to fix the tests .. so here’s a version using > >> separate > >> files. > > > > 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]; > > > > Do you still need this change? Existing test files are compiled without > > extern. > > > > + .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 > > ... > > > > I wonder if the above approach is better than existing: > > > > .comm _callthis,8 > > .comm _rax,8 > > .comm _rbx,8 > > .comm _rcx,8 > > .comm _rdx,8 > > ... > > As noted in the changelog, direct access to common data is not permitted in > the Darwin > ABI [for x86_64, it would need to be _xxx@GOTPCREL(%rip)..] that’s why these > have > been moved to bss.
Thanks for the explanation! The patch is OK. > > It is strange to have two different approaches for similar tests. If > > the new approach is better, we should also change existing asm-support > > files. > > could be, I have not checked other case so far (extremely limited time at the > moment) > > Quite likely, the accesses work in the testcases, despite violating the ABI. This is never a good sign, it will break sooner or later... Thanks, Uros.