]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Give different emulation warnings for setting of %mxcsr.fz and %mxcsr.daz.
authorJulian Seward <jseward@acm.org>
Wed, 15 Dec 2004 12:13:52 +0000 (12:13 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 15 Dec 2004 12:13:52 +0000 (12:13 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@658

VEX/priv/guest-x86/ghelpers.c
VEX/priv/main/vex_main.c
VEX/pub/libvex_emwarn.h

index 9041b07036b2f607f8672bfc2ca2bc31569404a9..6bbc8e7cb997ae77b00f05b49c124292a5fc7fb6 100644 (file)
@@ -1443,9 +1443,14 @@ ULong x86g_check_ldmxcsr ( UInt mxcsr )
       ew = EmWarn_X86_sseExns;
    }
    else 
-   if ((mxcsr & (1<<6)) || (mxcsr & (1<<15))) {
-      /* FZ or DAZ is set */
-      ew = EmWarn_X86_fz_daz;
+   if (mxcsr & (1<<15)) {
+      /* FZ is set */
+      ew = EmWarn_X86_fz;
+   } 
+   else
+   if (mxcsr & (1<<6)) {
+      /* DAZ is set */
+      ew = EmWarn_X86_daz;
    }
 
    return (((ULong)ew) << 32) | ((ULong)rmode);
index 890dbd626671a47e47f373d84b86318042f89615..b93ee57182220ccaddc0dfa9045df8fb5e22bedf 100644 (file)
@@ -455,9 +455,11 @@ HChar* LibVEX_EmWarn_string ( VexEmWarn ew )
      case EmWarn_X86_x87precision:
         return "Selection of non-80-bit x87 FP precision";
      case EmWarn_X86_sseExns:
-        return "Unmasking SSE FP exceptionss";
-     case EmWarn_X86_fz_daz:
-        return "Setting MXCSR.FZ or MXCSR.DAZ";
+        return "Unmasking SSE FP exceptions";
+     case EmWarn_X86_fz:
+        return "Setting %mxcsr.fz (SSE flush-underflows-to-zero mode)";
+     case EmWarn_X86_daz:
+        return "Setting %mxcsr.daz (SSE treat-denormals-as-zero mode)";
      default: 
         vpanic("LibVEX_EmWarn_string: unknown warning");
    }
index 0da0db0195dc805811c8c23b33e77fa1e420d64d..5411222251d39b310d9947491f0cf568db7b0ea6 100644 (file)
@@ -67,8 +67,11 @@ typedef
       /* unmasking SSE FP exceptions is not supported */
       EmWarn_X86_sseExns,
       
-      /* setting mxcsr.fz or mxcsr.daz is not supported */
-      EmWarn_X86_fz_daz,
+      /* setting mxcsr.fz is not supported */
+      EmWarn_X86_fz,
+      
+      /* setting mxcsr.daz is not supported */
+      EmWarn_X86_daz,
       
       EmWarn_NUMBER
    }