[Speex-dev] Re: sigsegv in _mm_load_ups (linux/gcc 3.x)
Thorvald Natvig
thorvald at natvig.com
Fri Jan 6 03:18:35 PST 2006
>> I've seen the exact same in my version (mingw on win32), and the problem
>> was that the stack was misaligned when entering the function, so the temp
>> registers weren't at 16-byte boundries.
>
> That's a possibility. It's easy to check by printing the address of the
> variables. I know that gcc 3.3 had some alignment issues with _m128 that
> were supposed to be fixed in version 3.4 and above.
I just checked it in the debugger, and this was with gcc 3.4.4 (mingw)...
And the addresses were not properly aligned :( From a bit of googling,
this seems to be a thread problem, as the gcc just maintains 16-byte
alignment of the stack -- if the start function of the thread had
misaligned stack, the misalignment will be kept throughout the execution.
More information about the Speex-dev
mailing list