> Once you start vectorising and using SSE instructions that will change > however as many SSE instructions do care about alignment and will fault > if the data is not correctly aligned. > > Most probably the reason it works in valgrind is that in the process of > annotating the code the actual instructions being used are changed and > the ones valgrind has selected don't have the same alignment requirements.
Urr, you're right. The amd64 front end (guest_amd64_toIR.c) mostly does compile in such alignment checks (iow, the check is expressed in IR along with the rest of the instruction's behaviour), but in the case of movdqa it seems to skip it. Darn. It's a 1-liner fix (for movdqa, at least); just insert a call "gen_SEGV_if_not_16_aligned( addr )" in the memory case for movdqa, around about line 11189 in the svn trunk. J ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Valgrind-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/valgrind-users
