2012/1/9 Rafaël Carré <span dir="ltr"><<a href="mailto:funman@videolan.org">funman@videolan.org</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
Le 12-01-08 00:52, Naohiro KORIYAMA a écrit :<br>
<div><div class="h5">> The old patch, I sent to vlc-devel ML yesterday, didn't help the crash<br>
> on Windows XP 32bit.<br>
> I was wrong that I tested with the module that was compiled with a<br>
> different patch.<br>
><br>
> So I made a new patch and tested again<br>
> (before applying old patch, after applying old patch, after applying<br>
> new patch):<br>
> - Windows XP 32bit using XP mode on Windows 7 (win32)<br>
> NG->NG->OK<br>
> - Windows 7 64bit (win32/win64)<br>
> OK->OK->OK<br>
> - Mac OS X Lion (intel64)<br>
> OK->OK->OK<br>
> - Ubuntu 11.10 32bit using VirtualBox (32)<br>
> OK->OK->OK<br>
> - Ubuntu 11.10 64bit using VirtualBox (64)<br>
> OK->OK->OK<br>
><br>
> It's all OK with the new patch.<br>
> But as jb mentioned on the ML few days ago, compiler warnings appear again<br>
> on 32bit builds both Windows and Linux.<br>
<br>
</div></div>These warnings might be fixed by using uintptr_t instead of uint64_t.<br>
<br>
Perhaps you noticed but this patch broke compile on OSX 32 bits and<br>
FreeBSD 32 bits : <a href="http://buildbot.videolan.org/builders/" target="_blank">http://buildbot.videolan.org/builders/</a><br>
<br>
OSX says:<br>
<br>
../../../modules/video_filter/deinterlace/yadif_template.h:245: error:<br>
can't find a register in class 'GENERAL_REGS' while reloading 'asm'<br>
../../../modules/video_filter/deinterlace/yadif_template.h:251: error:<br>
can't find a register in class 'GENERAL_REGS' while reloading 'asm'<br>
../../../modules/video_filter/deinterlace/yadif_template.h:245: error:<br>
'asm' operand has impossible constraints<br>
../../../modules/video_filter/deinterlace/yadif_template.h:251: error:<br>
'asm' operand has impossible constraints<br>
<br>
and FreeBSD:<br>
cc1: error in backend: Ran out of registers during register allocation!<br>
and other stuff.<br>
<br>
I suggest reverting the patch and doing something like:<br>
<br>
uint8_t tmp[5*16];<br>
uint8_t *tmpA= (uint8_t*)(((uintptr_t)(tmp+15)) & ~15);<br>
uint8_t *tmp0 = &tmpA[0]; uint8_t *tmp1 = &tmpA[16] ...<br>
<br>
what do you think?<br>
It would use the old version of the code and ensure that tmp* are aligned.<br>
<br>
Btw any idea why alignement doesn't work? Is it only for static data and<br>
not for stack variables?<br>
<br>
Other functions use (and rely on?) alignement in VLC so it should be<br>
important to know what's going on there<br></blockquote><div><br></div><div>And it would be nice to have a Wiki page about these, since it seems every x86 ASM patch causes some issues.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
vlc-devel mailing list<br>
To unsubscribe or modify your subscription options:<br>
<a href="http://mailman.videolan.org/listinfo/vlc-devel" target="_blank">http://mailman.videolan.org/listinfo/vlc-devel</a><br>
</div></div></blockquote></div><br>