> On Tuesday, May 18, 2021, 10:42:53 AM EDT, Alexandre Ratchov <a...@caoua.org> > wrote: > >On Tue, May 18, 2021 at 02:19:49PM +0000, Doug Moss wrote: > >> Another topic: > >> arm64 sndiod cannot be built with 24bit > >> > >> in /usr/src/usr.bin/sndiod > >> make COPTS=-DADATA_BITS=24 > >> produces: > >> dsp.h:85:2: error "no 24-bit code for this architecture" > > > >You could just add arm64 to the users of this code (or should we just > >enable for all non-i386 archs?). Let us know if this works well on arm64.
I think this should be enabled for all other archs. In fact, it should be used for _all_ archs. If you compare the inline assembly for fp24_mul() with the code clang generates on i386, there is no principal difference. It's imull followed by a double-register shift. There is no point in trying to hand-optimize this. Now, for fp24_muldiv() clang generates much longer code involving a subroutine call to __divdi3(). But the switch to the FIR filter for resampling has removed the only use of ADATA_MULDIV(). -- Christian "naddy" Weisgerber na...@mips.inka.de