[Speex-dev] Speex ARM4 patch

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Tue Apr 3 06:33:20 PDT 2007


Hi Dan,

Thanks for the patch. Could you just explain to me what that +r
constraint is and where I can get more info about it (couldn't find
anything so far)? Since I can't test that myself atm, I need to
understand what it's supposed to do.

	Jean-Marc

Dan Everton a écrit :
> The attached patch eliminates some warnings while compiling for ARM4
> targets. It also simplifies the asm constraints a bit. Now we can use
> the ARM4 optimisations when compiling for PortalPlayer targets in Rockbox.
> 
> Cheers,
> Dan
> 
> 
> ------------------------------------------------------------------------
> 
> --- speex/libspeex/ltp_arm4.h	2007-02-09 20:12:29.000000000 +1000
> +++ rockbox-clean/apps/codecs/libspeex/ltp_arm4.h	2007-03-22 19:40:07.000000000 +1000
> @@ -75,9 +75,10 @@
>           "\tadd %2, %2, %7, asr #5\n"
>           "\tadd %3, %3, %10, asr #5\n"
>           "\tbne .inner_prod_loop%=\n"
> -   : "=r" (deadx), "=r" (deady), "=r" (sum1),  "=r" (sum2), "=r" (deadlen),
> -   "=r" (dead1), "=r" (dead2), "=r" (dead3), "=r" (dead4), "=r" (dead5), "=r" (dead6)
> -   : "0" (x), "1" (y), "2" (sum1), "3" (sum2), "4" (len>>3)
> +   : "=r" (deadx), "=r" (deady), "+r" (sum1),  "+r" (sum2),
> +     "=r" (deadlen), "=r" (dead1), "=r" (dead2), "=r" (dead3),
> +     "=r" (dead4), "=r" (dead5), "=r" (dead6)
> +   : "0" (x), "1" (y), "4" (len>>3)
>     : "cc"
>                          );
>     return (sum1+sum2)>>1;
> @@ -169,13 +170,11 @@
>                 "\tstr %6, %13 \n"
>                 "\tstr %7, %14 \n"
>  
> -            : "=r" (y0), "=r" (y1), "=r" (y2), "=r" (y3),
> +            : "+r" (y0), "+r" (y1), "+r" (y2), "+r" (y3),
>           "=r" (part1),  "=r" (part2),  "=r" (part3),  "=r" (part4),
> -         "=r" (x), "=r" (y), "=r" (x0),
> -         "=m" (sum1), "=m" (sum2), "=m" (sum3), "=m" (sum4), "=r" (dead1)
> -            : "0" (y0), "1" (y1), "2" (y2), "3" (y3),
> -            "8" (x), "9" (y),
> -            "11" (sum1), "12" (sum2), "13" (sum3), "14" (sum4)
> +              "+r" (x), "+r" (y), "=r" (x0), "+m" (sum1),
> +              "+m" (sum2), "+m" (sum3), "+m" (sum4), "=r" (dead1)
> +            :
>              : "cc", "memory"
>                                );
>        }
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev


More information about the Speex-dev mailing list