/[qemu]/qemu/tests/test-i386.c
ViewVC logotype

Diff of /qemu/tests/test-i386.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.27 by bellard, Mon Oct 27 23:55:20 2003 UTC revision 1.28 by bellard, Sun Nov 16 20:18:52 2003 UTC
# Line 658  void test_fenv(void) Line 658  void test_fenv(void)
658      TEST_ENV(&float_env32, "");      TEST_ENV(&float_env32, "");
659  }  }
660    
661    
662    #define TEST_FCMOV(a, b, eflags, CC)\
663    {\
664        double res;\
665        asm("push %3\n"\
666            "popf\n"\
667            "fcmov" CC " %2, %0\n"\
668            : "=t" (res)\
669            : "0" (a), "u" (b), "g" (eflags));\
670        printf("fcmov%s eflags=0x%04x-> %f\n", \
671               CC, eflags, res);\
672    }
673    
674    void test_fcmov(void)
675    {
676        double a, b;
677        int eflags, i;
678    
679        a = 1.0;
680        b = 2.0;
681        for(i = 0; i < 4; i++) {
682            eflags = 0;
683            if (i & 1)
684                eflags |= CC_C;
685            if (i & 2)
686                eflags |= CC_Z;
687            TEST_FCMOV(a, b, eflags, "b");
688            TEST_FCMOV(a, b, eflags, "e");
689            TEST_FCMOV(a, b, eflags, "be");
690            TEST_FCMOV(a, b, eflags, "nb");
691            TEST_FCMOV(a, b, eflags, "ne");
692            TEST_FCMOV(a, b, eflags, "nbe");
693        }
694        TEST_FCMOV(a, b, 0, "u");
695        TEST_FCMOV(a, b, CC_P, "nu");
696    }
697    
698  void test_floats(void)  void test_floats(void)
699  {  {
700      test_fops(2, 3);      test_fops(2, 3);
# Line 675  void test_floats(void) Line 712  void test_floats(void)
712      test_fbcd(1234567890123456);      test_fbcd(1234567890123456);
713      test_fbcd(-123451234567890);      test_fbcd(-123451234567890);
714      test_fenv();      test_fenv();
715        if (TEST_CMOV) {
716            test_fcmov();
717        }
718  }  }
719    
720  /**********************************************/  /**********************************************/

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26