diff mbox

x86emul/test: fix 32-bit build

Message ID 589D7C1B020000780013876A@prv-mh.provo.novell.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Beulich Feb. 10, 2017, 7:38 a.m. UTC
Commit 7603eb256 ("x86emul: use eflags definitions in x86-defns.h")
removed the EFLG_* definitions without updating the use sites (which
- oddly enough - happen to all be in 32-bit only code paths).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
x86emul/test: fix 32-bit build

Commit 7603eb256 ("x86emul: use eflags definitions in x86-defns.h")
removed the EFLG_* definitions without updating the use sites (which
- oddly enough - happen to all be in 32-bit only code paths).

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -497,7 +497,7 @@ int main(int argc, char **argv)
     if ( (rc != X86EMUL_OKAY) ||
          (*res != 0x33331112) ||
          (regs.ecx != 0x22222222) ||
-         !(regs.eflags & EFLG_ZF) ||
+         !(regs.eflags & X86_EFLAGS_ZF) ||
          (regs.eip != (unsigned long)&instr[2]) )
         goto fail;
 #else
@@ -571,11 +571,11 @@ int main(int argc, char **argv)
 
 #ifndef __x86_64__
     printf("%-40s", "Testing daa/das (all inputs)...");
-    /* Bits 0-7: AL; Bit 8: EFLG_AF; Bit 9: EFLG_CF; Bit 10: DAA vs. DAS. */
+    /* Bits 0-7: AL; Bit 8: EFLAGS.AF; Bit 9: EFLAGS.CF; Bit 10: DAA vs. DAS. */
     for ( i = 0; i < 0x800; i++ )
     {
-        regs.eflags  = (i & 0x200) ? EFLG_CF : 0;
-        regs.eflags |= (i & 0x100) ? EFLG_AF : 0;
+        regs.eflags  = (i & 0x200) ? X86_EFLAGS_CF : 0;
+        regs.eflags |= (i & 0x100) ? X86_EFLAGS_AF : 0;
         if ( i & 0x400 )
             __asm__ (
                 "pushf; and $0xffffffee,(%%esp); or %1,(%%esp); popf; das; "
@@ -588,24 +588,24 @@ int main(int argc, char **argv)
                 "pushf; popl %1"
                 : "=a" (bcdres_native), "=r" (regs.eflags)
                 : "0" (i & 0xff), "1" (regs.eflags) );
-        bcdres_native |= (regs.eflags & EFLG_PF) ? 0x1000 : 0;
-        bcdres_native |= (regs.eflags & EFLG_ZF) ? 0x800 : 0;
-        bcdres_native |= (regs.eflags & EFLG_SF) ? 0x400 : 0;
-        bcdres_native |= (regs.eflags & EFLG_CF) ? 0x200 : 0;
-        bcdres_native |= (regs.eflags & EFLG_AF) ? 0x100 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_PF) ? 0x1000 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_ZF) ? 0x800 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_SF) ? 0x400 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_CF) ? 0x200 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_AF) ? 0x100 : 0;
 
         instr[0] = (i & 0x400) ? 0x2f: 0x27; /* daa/das */
-        regs.eflags  = (i & 0x200) ? EFLG_CF : 0;
-        regs.eflags |= (i & 0x100) ? EFLG_AF : 0;
+        regs.eflags  = (i & 0x200) ? X86_EFLAGS_CF : 0;
+        regs.eflags |= (i & 0x100) ? X86_EFLAGS_AF : 0;
         regs.eip    = (unsigned long)&instr[0];
         regs.eax    = (unsigned char)i;
         rc = x86_emulate(&ctxt, &emulops);
         bcdres_emul  = regs.eax;
-        bcdres_emul |= (regs.eflags & EFLG_PF) ? 0x1000 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_ZF) ? 0x800 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_SF) ? 0x400 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_CF) ? 0x200 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_AF) ? 0x100 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_PF) ? 0x1000 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_ZF) ? 0x800 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_SF) ? 0x400 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_CF) ? 0x200 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_AF) ? 0x100 : 0;
         if ( (rc != X86EMUL_OKAY) || (regs.eax > 255) ||
              (regs.eip != (unsigned long)&instr[1]) )
             goto fail;

Comments

Wei Liu Feb. 10, 2017, 8:15 a.m. UTC | #1
On Fri, Feb 10, 2017 at 12:38:51AM -0700, Jan Beulich wrote:
> Commit 7603eb256 ("x86emul: use eflags definitions in x86-defns.h")
> removed the EFLG_* definitions without updating the use sites (which
> - oddly enough - happen to all be in 32-bit only code paths).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Wei Liu <wei.liu2@citrix.com>

Ah sorry! I would have sworn I did several mechanical replaces, but
apparently something went wrong...

And I also notice that this directory is not built by default, hence it
slipped my pre-commit build test (which does 32bit build as well) and
oostest build test.

Wei.
Jan Beulich Feb. 10, 2017, 9:05 a.m. UTC | #2
>>> On 10.02.17 at 09:15, <wei.liu2@citrix.com> wrote:
> On Fri, Feb 10, 2017 at 12:38:51AM -0700, Jan Beulich wrote:
>> Commit 7603eb256 ("x86emul: use eflags definitions in x86-defns.h")
>> removed the EFLG_* definitions without updating the use sites (which
>> - oddly enough - happen to all be in 32-bit only code paths).
>> 
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Wei Liu <wei.liu2@citrix.com>

Thanks.

> And I also notice that this directory is not built by default, hence it
> slipped my pre-commit build test (which does 32bit build as well) and
> oostest build test.

And we shouldn't try to build this by default, as it definitely
requires a much newer tool chain than what our base requirement
is.

Jan
Andrew Cooper Feb. 10, 2017, 10:48 a.m. UTC | #3
On 10/02/17 07:38, Jan Beulich wrote:
> Commit 7603eb256 ("x86emul: use eflags definitions in x86-defns.h")
> removed the EFLG_* definitions without updating the use sites (which
> - oddly enough - happen to all be in 32-bit only code paths).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
diff mbox

Patch

--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -497,7 +497,7 @@  int main(int argc, char **argv)
     if ( (rc != X86EMUL_OKAY) ||
          (*res != 0x33331112) ||
          (regs.ecx != 0x22222222) ||
-         !(regs.eflags & EFLG_ZF) ||
+         !(regs.eflags & X86_EFLAGS_ZF) ||
          (regs.eip != (unsigned long)&instr[2]) )
         goto fail;
 #else
@@ -571,11 +571,11 @@  int main(int argc, char **argv)
 
 #ifndef __x86_64__
     printf("%-40s", "Testing daa/das (all inputs)...");
-    /* Bits 0-7: AL; Bit 8: EFLG_AF; Bit 9: EFLG_CF; Bit 10: DAA vs. DAS. */
+    /* Bits 0-7: AL; Bit 8: EFLAGS.AF; Bit 9: EFLAGS.CF; Bit 10: DAA vs. DAS. */
     for ( i = 0; i < 0x800; i++ )
     {
-        regs.eflags  = (i & 0x200) ? EFLG_CF : 0;
-        regs.eflags |= (i & 0x100) ? EFLG_AF : 0;
+        regs.eflags  = (i & 0x200) ? X86_EFLAGS_CF : 0;
+        regs.eflags |= (i & 0x100) ? X86_EFLAGS_AF : 0;
         if ( i & 0x400 )
             __asm__ (
                 "pushf; and $0xffffffee,(%%esp); or %1,(%%esp); popf; das; "
@@ -588,24 +588,24 @@  int main(int argc, char **argv)
                 "pushf; popl %1"
                 : "=a" (bcdres_native), "=r" (regs.eflags)
                 : "0" (i & 0xff), "1" (regs.eflags) );
-        bcdres_native |= (regs.eflags & EFLG_PF) ? 0x1000 : 0;
-        bcdres_native |= (regs.eflags & EFLG_ZF) ? 0x800 : 0;
-        bcdres_native |= (regs.eflags & EFLG_SF) ? 0x400 : 0;
-        bcdres_native |= (regs.eflags & EFLG_CF) ? 0x200 : 0;
-        bcdres_native |= (regs.eflags & EFLG_AF) ? 0x100 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_PF) ? 0x1000 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_ZF) ? 0x800 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_SF) ? 0x400 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_CF) ? 0x200 : 0;
+        bcdres_native |= (regs.eflags & X86_EFLAGS_AF) ? 0x100 : 0;
 
         instr[0] = (i & 0x400) ? 0x2f: 0x27; /* daa/das */
-        regs.eflags  = (i & 0x200) ? EFLG_CF : 0;
-        regs.eflags |= (i & 0x100) ? EFLG_AF : 0;
+        regs.eflags  = (i & 0x200) ? X86_EFLAGS_CF : 0;
+        regs.eflags |= (i & 0x100) ? X86_EFLAGS_AF : 0;
         regs.eip    = (unsigned long)&instr[0];
         regs.eax    = (unsigned char)i;
         rc = x86_emulate(&ctxt, &emulops);
         bcdres_emul  = regs.eax;
-        bcdres_emul |= (regs.eflags & EFLG_PF) ? 0x1000 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_ZF) ? 0x800 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_SF) ? 0x400 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_CF) ? 0x200 : 0;
-        bcdres_emul |= (regs.eflags & EFLG_AF) ? 0x100 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_PF) ? 0x1000 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_ZF) ? 0x800 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_SF) ? 0x400 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_CF) ? 0x200 : 0;
+        bcdres_emul |= (regs.eflags & X86_EFLAGS_AF) ? 0x100 : 0;
         if ( (rc != X86EMUL_OKAY) || (regs.eax > 255) ||
              (regs.eip != (unsigned long)&instr[1]) )
             goto fail;