On Fri, 27 Jun 2025, Corinna Vinschen via Cygwin wrote: > Hi Pip, > > On Jun 27 14:41, Pip Cet via Cygwin wrote: > > My suggested fix is to align the value in %rbx to the next 64-byte > > multiple after the "cpuid" instruction is executed, by performing the > > assembler equivalent of $rbx += 63; $rbx &= -64; I tried this: > > > > diff --git a/winsup/cygwin/scripts/gendef b/winsup/cygwin/scripts/gendef > > index 861a2405b..d681fde3f 100755 > > --- a/winsup/cygwin/scripts/gendef > > +++ b/winsup/cygwin/scripts/gendef > > @@ -232,6 +232,8 @@ sigdelayed: > > movl \$0x0d,%eax > > xorl %ecx,%ecx > > cpuid # get necessary space for xsave > > + addq \$63, %rbx > > + andq \$-64, %rbx # align to next 64-byte multiple > > what about a oneliner instead by just aligning rsp? As in > > > movq %rbx,%rcx > > addq \$0x48,%rbx # 0x18 for alignment, 0x30 for additional space
If aligning via andq, does the 0x18 "for alignment" still need to be included? > > subq %rbx,%rsp > > + andq \$-64, %rsp > -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple

