On Thu, Apr 16, 2020 at 02:31:51PM -0400, Rich Felker wrote:
> > While on musl:
> > 
> > 0000000000000000 <kill>:
> >    0:       48 83 ec 08             sub    $0x8,%rsp
> >    4:       48 63 ff                movslq %edi,%rdi
> >    7:       48 63 f6                movslq %esi,%rsi
> >    a:       b8 3e 00 00 00          mov    $0x3e,%eax
> >    f:       0f 05                   syscall 
> >   11:       48 89 c7                mov    %rax,%rdi
> >   14:       e8 00 00 00 00          callq  19 <kill+0x19>
> >   19:       5a                      pop    %rdx
> >   1a:       c3                      retq   
> 
> Wow that's some extraordinarily bad codegen going on by gcc... The
> sign-extension is semantically needed and I don't see a good way
> around it (glibc's asm is kinda a hack taking advantage of kernel not
> looking at high bits, I think), but the gratuitous stack adjustment
> and refusal to generate a tail call isn't. I'll see if we can track
> down what's going on and get it fixed.

It seems to be https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14441
which I've updated with a comment about the above.

Rich

Reply via email to