Prakash Punnoor schrieb:
> Am Samstag 09 September 2006 14:50 schrieb Martin Wache:
>> Maybe there is a simpler workaround, or it is some bug in the code...
>
> Yes, it seems like it:
>
> Index: SoftOsd.c
> ===================================================================
> RCS file: /cvsroot/softdevice/softdevice/SoftOsd.c,v
> retrieving revision 1.16
> diff -u -r1.16 SoftOsd.c
> --- SoftOsd.c 10 Jul 2006 18:23:28 -0000 1.16
> +++ SoftOsd.c 10 Sep 2006 08:02:43 -0000
> @@ -1381,10 +1381,10 @@
> #ifdef USE_MMX2
> __asm__ __volatile__ (
> " pxor %%mm0,%%mm0 \n" //mm0: dest pixel
> - " movd (%0),%%mm6 \n"
> + " movd %0,%%mm6 \n"
> " pshufw $0,%%mm6,%%mm6 \n"// mm6: new_pixel_width_rec
> " pxor %%mm7,%%mm7 \n" //mm7: 00 00 00 ...
> - : : "r" (&new_pixel_width_rec) );
> + : : "r" (new_pixel_width_rec) );
> #endif
> SCALEDEBH("OSD_WIDTH: %d dest_width: %d new_pixel_width: %d\n",
> OSD_WIDTH,dest_Width,new_pixel_width);
>
Yes, this should fix it. To me this looks like a compiler bug, in
SoftOsd.sO2 the initialization of new_pixel_width_rec is moved below
this part of the code. It seems like a reference to the address is not
treated any more as a reference to the value. I don't know the
specification, but I doubt that this is correct.
I will check if this works also with the older compiler version and then
apply this fix.
Thank you, and Chris for your help!
Bye,
Martin
_______________________________________________
Softdevice-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/softdevice-devel