]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add alignment checking for FXSAVE/FXRSTOR.
authorJulian Seward <jseward@acm.org>
Fri, 21 Jan 2011 18:02:54 +0000 (18:02 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 21 Jan 2011 18:02:54 +0000 (18:02 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2083

VEX/priv/guest_x86_toIR.c

index 50a9e327e7c744078c96c5ed5e711a50322817f5..10409580bc867c008a2c7ce0e0774a09c56a7631 100644 (file)
@@ -8095,6 +8095,7 @@ DisResult disInstr_X86_WRK (
 
       addr = disAMode ( &alen, sorb, delta+2, dis_buf );
       delta += 2+alen;
+      gen_SEGV_if_not_16_aligned(addr);
 
       DIP("fxsave %s\n", dis_buf);
 
@@ -8165,11 +8166,15 @@ DisResult disInstr_X86_WRK (
 
       addr = disAMode ( &alen, sorb, delta+2, dis_buf );
       delta += 2+alen;
+      gen_SEGV_if_not_16_aligned(addr);
 
       DIP("fxrstor %s\n", dis_buf);
 
       /* Uses dirty helper: 
-            void x86g_do_FXRSTOR ( VexGuestX86State*, UInt ) */
+            VexEmWarn x86g_do_FXRSTOR ( VexGuestX86State*, UInt )
+         NOTE:
+            the VexEmWarn value is simply ignored (unlike for FRSTOR)
+      */
       d = unsafeIRDirty_0_N ( 
              0/*regparms*/, 
              "x86g_dirtyhelper_FXRSTOR",