[MinGW] MT+SIMD = SIGSEGV
- 
					
					
					
					
 Ich nutze den TDM-GCC 4.8.1 (mingw32). 
 Die Kombination von Multithreading und SSE2 führt bei mir zu mysteriösen Laufzeit-Abstürzen. Der Debugger gibt mir als Grund stets den Ausdruck vor dem ersten SSE Befehl aus.
 Beispiel:... // Crash-Ursache accum = _mm_xor_ps(accum, accum);__m128 accum = _mm_setzero_ps(); // Crash-Ursache (wegen der Deklaration)Ich weiß nicht mehr weiter. Ist es ein Compiler Bug, liegt es an MinGW allgemein oder nur der TDM Version, gibt es Unterschiede in der Thread-Erstellung zwischen MSVC (wo exakt der gleiche Code funktioniert) und MinGW? 
 
- 
					
					
					
					
 Nach Betrachtung der Disassembly kam ich zu neuer Erkenntnis: 
 Im den Crash verursachenden Ausdruck wird stets movaps auf unaligned Stack-Speicher angewendet. Der Compiler generiert diesen Müll, wenn ich selber versuche, SSE Code zu erzeugen. Ein Umstellen des Optimierungslevels von -O3 zu -O2 beim Release bzw. -O0 zu -O1 im Debug hat dieses Problem vorzeitig gelöst...Auf zu neuen Bugs :S