> 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

Reply via email to