[Speex-dev] Errors in speex lib with Blackfin

Bodnya Dmitry demonb at mail.ru
Tue Jan 17 01:40:35 PST 2006


I'v downloaded speex lib

I am trying to port speex lib to Blackfin processor.
I am using VisualDSP++ 4.0.
If I am compiling source codes with using floating point everything
When I am compiling with FIXED_POINT defined everything's ok and code
works about two times faster.
But when I am defining BFIN_ASM I am getting several compiling errors
in Blackfin assembler functions.
Here they are:
1) In the inline assembler functions (blackfin asm) in every loop
there is a syntax error. May be I am wrong, but I can't understood
what is written there(and compiler too).

__asm__ __volatile__
         "I0 = %0;\n\t"
         "I1 = %1;\n\t"
         "L0 = 0;\n\t"
         "L1 = 0;\n\t"
         "LOOP tupdate%= LC0 = %3;\n\t"
                      ^//here is the problem
         "LOOP_BEGIN tupdate%=;\n\t"
                            ^//here is the same problem
            "R0.L = W[I0] || R1.L = W[I1++];\n\t"
            "R1 = (A1 = R1.L*%2.L) (IS);\n\t"
            "R1 >>>= 11;\n\t"
            "R0.L = R0.L - R1.L;\n\t"
            "W[I0++] = R0.L;\n\t"
         "LOOP_END tupdate%=;\n\t"
                          ^//and here
   : "a" (t), "a" (r), "d" (g), "a" (len)
   : "R0", "R1", "A1", "I0", "I1", "L0", "L1"

  So, I removed the signs '%=' from loops and this problems were

2)Some errors in arithmetical operations.
        "R0.L = R0.L - R1.L;\n\t"//compiler error
        //Need to be written (s)-saturate or (ns)-not saturate after operation
        "R0.L = R0.L - R1.L(ns);\n\t"
Here is only one example. But I'v got a lot.

3)When I am trying to correct previus errors - compiler don't compile some functions with message:
 gnu asm requires too much Preg registers.

So, did you compile your library in Visual DPS++? May be it;s some
problems with versions. May be I am wrong, and I don't understand
Please, clarify this questions.

Thank you.


 demon                          mailto:demonb at mail.ru

More information about the Speex-dev mailing list