Date: Sun, 5 Jan 2020 15:05:41 -0500 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: [PATCH] math: move x86_64 fabs, fabsf to C with inline asm On Sun, Jan 05, 2020 at 07:36:39PM +0300, Alexander Monakov wrote: > --- > > Questions: > > Why are there amd64-specific fabs implementations in the first place? > (Only) because GCC generated poor code for the generic C version? I think so. It generates: 0000000000000000 <fabs>: 0: 66 48 0f 7e c0 movq %xmm0,%rax 5: 48 ba ff ff ff ff ff movabs $0x7fffffffffffffff,%rdx c: ff ff 7f f: 48 21 d0 and %rdx,%rax 12: 48 89 44 24 f8 mov %rax,-0x8(%rsp) 17: f2 0f 10 44 24 f8 movsd -0x8(%rsp),%xmm0 1d: c3 retq > Do annotations for mask manipulation in the patch help? Any way to make > them less ambiguous? I think so. I like how you did individual asm statements with dependency relationship between them so compiler could even schedule them if it likes. I wonder if you could just write 0x7fffffffffffffff as an operand and have the compiler load it, though. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.