On Fri, Jan 16, 2009 at 08:29:39PM -0800, patrick keshishian wrote:
> On Fri, Jan 16, 2009 at 6:17 PM, Jacob Meuser <jake...@sdf.lonestar.org> 
> wrote:
> > can someone check that this builds on !x86?
> 
> fails on macppc.
> 
> c++ -O2 -pipe  -DOS_LINUX -DOSSMIDIIN -DFFTW_VERSION_3 -DASM_F2I_YES
> `fltk-config --cflags`  -DSNDIOAUDIOOUT  -DOS_LINUX -DOSSMIDIIN
> -DFFTW_VERSION_3 -DASM_F2I_YES `fltk-config --cflags`  -DSNDIOAUDIOOUT
>    -c -o FormantFilter.o FormantFilter.C
> FormantFilter.C: In member function `void FormantFilter::setpos(float)':
> FormantFilter.C:93: error: unknown register name `st' in `asm'
> gmake[2]: *** [FormantFilter.o] Error 1
> gmake[2]: Leaving directory
> `/usr/ports/mystuff/audio/zynaddsubfx/w-zynaddsubfx-2.2.1/ZynAddSubFX-2.2.1/src/DSP'
> gmake[1]: *** [DSP] Error 2
> gmake[1]: Leaving directory
> `/usr/ports/mystuff/audio/zynaddsubfx/w-zynaddsubfx-2.2.1/ZynAddSubFX-2.2.1/src'
> gmake: *** [all] Error 2
> *** Error code 2
> 
> 
> 
> The line in question is a macro for F2I defined in globals.h
> 
> #ifdef ASM_F2I_YES
> #define F2I(f,i) __asm__ __volatile__ ("fistpl %0" : "=m" (i) : "t" 
> (f-0.4999999
> 9) : "st") ;
> #else
> #define F2I(f,i) (i)=((f>0) ? ( (int)(f) ) :( (int)(f-1.0) ));
> #endif
> 
> 
> ASM_F2I_YES gets defined in src/Makefile as -DASM_F2I_$(ASM_F2I) and
> ASM_F2I is in src/Makefile.inc
> 
> #Assembler FLOAT to INT conversions
> ASM_F2I=YES
> #ASM_F2I=NO
> 
> I know very little about assembly (especially on powerpc) to comment
> any further on this. The copy of PowerPC assembler reference manual I
> have at hand offers this:
> 
> fctid  FRT,FRB Floating Convert to Integer Doubleword
> fctid. FRT,FRB
> 
> fctidz   FRT,FRB Floating Convert to Integer Doubleword with Round toward Zero
> fctidz. FRT,FRB
> 
> fctiw   FRT,FRB Floating Convert to Integer Word
> fctiw. FRT,FRB
> 
> fctiwz   FRT,FRB Floating Convert to Integer Word with Round toward Zero
> fctiwz. FRT,FRB
> 
> Does that help ... a little?

yes, thanks.

I don't know much about ppc assembly either, but it looks like
zynaddsubfx doesn't support it.

also led me to this interesting paper:

http://www.cs.cmu.edu/~poladian/arch/project/report_ning_poladian.htm

-- 
jake...@sdf.lonestar.org
SDF Public Access UNIX System - http://sdf.lonestar.org

Reply via email to