]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Support for x86 insn fldenv.
authorJulian Seward <jseward@acm.org>
Tue, 23 Jul 2002 18:48:39 +0000 (18:48 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 23 Jul 2002 18:48:39 +0000 (18:48 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@515

coregrind/vg_memory.c
coregrind/vg_to_ucode.c
vg_memory.c
vg_to_ucode.c

index eca0dc215d5666c70f625d9e4c58dae0cc233359..eea79cbe9ac797a828c044805a65a6ffd56f9fa0 100644 (file)
@@ -1142,6 +1142,12 @@ void VGM_(fpu_read_check) ( Addr addr, Int size )
       return;
    }
 
+   if (size == 28) {
+      PROF_EVENT(84); /* XXX assign correct event number */
+      fpu_read_check_SLOWLY ( addr, 28 );
+      return;
+   }
+
    VG_(printf)("size is %d\n", size);
    VG_(panic)("vgm_fpu_read_check: unhandled size");
 #  endif
index 0b1e5c61dc08fa2c1283ca72646eac34f1819690..c1ac7525fa543b83b1c58fa7432a1a71ed255bdb 100644 (file)
@@ -2413,6 +2413,8 @@ Addr dis_fpu ( UCodeBlock* cb, UChar first_byte, Addr eip )
             case 2: /* FSTs */
             case 3: /* FSTPs */
                return dis_fpu_mem(cb, 4, wr, eip, first_byte); 
+            case 4: /* FLDENV */
+               return dis_fpu_mem(cb, 28, rd, eip, first_byte);
             case 5: /* FLDCW */
                return dis_fpu_mem(cb, 2, rd, eip, first_byte); 
             case 6: /* FNSTENV */
index eca0dc215d5666c70f625d9e4c58dae0cc233359..eea79cbe9ac797a828c044805a65a6ffd56f9fa0 100644 (file)
@@ -1142,6 +1142,12 @@ void VGM_(fpu_read_check) ( Addr addr, Int size )
       return;
    }
 
+   if (size == 28) {
+      PROF_EVENT(84); /* XXX assign correct event number */
+      fpu_read_check_SLOWLY ( addr, 28 );
+      return;
+   }
+
    VG_(printf)("size is %d\n", size);
    VG_(panic)("vgm_fpu_read_check: unhandled size");
 #  endif
index 0b1e5c61dc08fa2c1283ca72646eac34f1819690..c1ac7525fa543b83b1c58fa7432a1a71ed255bdb 100644 (file)
@@ -2413,6 +2413,8 @@ Addr dis_fpu ( UCodeBlock* cb, UChar first_byte, Addr eip )
             case 2: /* FSTs */
             case 3: /* FSTPs */
                return dis_fpu_mem(cb, 4, wr, eip, first_byte); 
+            case 4: /* FLDENV */
+               return dis_fpu_mem(cb, 28, rd, eip, first_byte);
             case 5: /* FLDCW */
                return dis_fpu_mem(cb, 2, rd, eip, first_byte); 
             case 6: /* FNSTENV */