2014-02-12 12:56 GMT+01:00 Koehne Kai <kai.koe...@digia.com>:
> Hi,
>
> I'm currently investigating a crash [1] in Qt that was caused by introducing 
> SSE2 optimized code. My best guess is that, when calling _mm_loadu_si128 , 
> the generated assembly actually chokes on non-aligned data.
>
> This is the code line (with annotated assembly, from gdb):
>
> __m128i a_data = _mm_loadu_si128((__m128i*)ptr);
> 0x6b7f7df4  <+0x0049>         movdqa %xmm0,-0x28(%ebp)
>
> You see that the _mm_loadu_si128 call, that should work for non-aligned 
> memory addresses, actually is is implemented with movdqa, which is " Move 
> Aligned Double Quadword".
>
> So, do you think this is a bug, or am I on the wrong track here? If so, is it 
> a gcc, or MinGW-w64 issue?
>
> Regards
>
> Kai
>
> PS: I've been able to reproduce this with both Mingw-builds 
> i686-4.8.2-release-posix-dwarf-rt_v3-rev2 and Mingw-builds 
> x32-4.7.2-release-posix-sjlj-rev8 .
>
> [1]: https://bugreports.qt-project.org/browse/QTBUG-36807

Yes, that seems to be a gcc-bug.  As you ask for unaligned, and get
aligned.  At least I would assume so.

Kai

------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to