vince> bah le probleme des blocs asm {} comme ca, c'est que ca interagit mal avec le code autour.
non mais la en gros le truc dans videz votre presse papier ou il stockait le registre sur la stack pour le reloader juste apres, c'etait genere par ce code la:
SIMD::Float4 d = lerp4(wwww, lerp4(vvvv, lerp4(uuuu, noise->m_Gradients[aa + 0],
noise->m_Gradients[ba + 0]),
lerp4(uuuu, noise->m_Gradients[ab + 0],
noise->m_Gradients[bb + 0])),
lerp4(vvvv, lerp4(uuuu, noise->m_Gradients[aa + 1],
noise->m_Gradients[ba + 1]),
lerp4(uuuu, noise->m_Gradients[ab + 1],
noise->m_Gradients[bb + 1])));
en le changeant en ca:
SIMD::Float4 gaa0(noise->m_Gradients[aa + 0]);
SIMD::Float4 gaa1(noise->m_Gradients[aa + 1]);
SIMD::Float4 gba0(noise->m_Gradients[ba + 0]);
SIMD::Float4 gba1(noise->m_Gradients[ba + 1]);
SIMD::Float4 gaa0gba0 = lerp4(uuuu, gaa0, gba0);
SIMD::Float4 gaa1gba1 = lerp4(uuuu, gaa1, gba1);
SIMD::Float4 gab0(noise->m_Gradients[ab + 0]);
SIMD::Float4 gab1(noise->m_Gradients[ab + 1]);
SIMD::Float4 gbb0(noise->m_Gradients[bb + 0]);
SIMD::Float4 gbb1(noise->m_Gradients[bb + 1]);
SIMD::Float4 gab0gbb0 = lerp4(uuuu, gab0, gbb0);
SIMD::Float4 gab1gbb1 = lerp4(uuuu, gab1, gbb1);
SIMD::Float4 d = lerp4(wwww, lerp4(vvvv, gaa0gba0, gab0gbb0),
lerp4(vvvv, gaa1gba1, gab1gbb1));
il est moins perdu, et ya plus le pbl

(bon yen a d'autres, mais ils etaient quand meme la dans la version d'avant aussi

)
le truc relou avec les blocs asm aussi, c'est que la ca builde sur PC/32 bits SSE, PC/64 bits SSE, Playstation3/PPU, Playstation3/SPU, Xbox360/Xenon, PsVita/ARM-NEON, et tablettes WinRT/ARM-NEON...
pour implementer ca a la main en ASM pour chacune de ces plateformes, ca serait inmaintenable, surtout qu'il y plusieurs centaines d'endroits comme ca :/