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@xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev