~ubuntu-branches/ubuntu/gutsy/virtualbox-ose/gutsy

« back to all changes in this revision

Viewing changes to src/recompiler/tests/test-i386-muldiv.h

  • Committer: Bazaar Package Importer
  • Author(s): Steve Kowalik
  • Date: 2007-09-08 16:44:58 UTC
  • Revision ID: james.westby@ubuntu.com-20070908164458-wao29470vqtr8ksy
Tags: upstream-1.5.0-dfsg2
ImportĀ upstreamĀ versionĀ 1.5.0-dfsg2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
void glue(glue(test_, OP), b)(long op0, long op1) 
 
3
{
 
4
    long res, s1, s0, flags;
 
5
    s0 = op0;
 
6
    s1 = op1;
 
7
    res = s0;
 
8
    flags = 0;
 
9
    asm ("push %4\n\t"
 
10
         "popf\n\t"
 
11
         stringify(OP)"b %b2\n\t" 
 
12
         "pushf\n\t"
 
13
         "pop %1\n\t"
 
14
         : "=a" (res), "=g" (flags)
 
15
         : "q" (s1), "0" (res), "1" (flags));
 
16
    printf("%-10s A=" FMTLX " B=" FMTLX " R=" FMTLX " CC=%04lx\n",
 
17
           stringify(OP) "b", s0, s1, res, flags & CC_MASK);
 
18
}
 
19
 
 
20
void glue(glue(test_, OP), w)(long op0h, long op0, long op1) 
 
21
{
 
22
    long res, s1, flags, resh;
 
23
    s1 = op1;
 
24
    resh = op0h;
 
25
    res = op0;
 
26
    flags = 0;
 
27
    asm ("push %5\n\t"
 
28
         "popf\n\t"
 
29
         stringify(OP) "w %w3\n\t" 
 
30
         "pushf\n\t"
 
31
         "pop %1\n\t"
 
32
         : "=a" (res), "=g" (flags), "=d" (resh)
 
33
         : "q" (s1), "0" (res), "1" (flags), "2" (resh));
 
34
    printf("%-10s AH=" FMTLX " AL=" FMTLX " B=" FMTLX " RH=" FMTLX " RL=" FMTLX " CC=%04lx\n",
 
35
           stringify(OP) "w", op0h, op0, s1, resh, res, flags & CC_MASK);
 
36
}
 
37
 
 
38
void glue(glue(test_, OP), l)(long op0h, long op0, long op1) 
 
39
{
 
40
    long res, s1, flags, resh;
 
41
    s1 = op1;
 
42
    resh = op0h;
 
43
    res = op0;
 
44
    flags = 0;
 
45
    asm ("push %5\n\t"
 
46
         "popf\n\t"
 
47
         stringify(OP) "l %k3\n\t" 
 
48
         "pushf\n\t"
 
49
         "pop %1\n\t"
 
50
         : "=a" (res), "=g" (flags), "=d" (resh)
 
51
         : "q" (s1), "0" (res), "1" (flags), "2" (resh));
 
52
    printf("%-10s AH=" FMTLX " AL=" FMTLX " B=" FMTLX " RH=" FMTLX " RL=" FMTLX " CC=%04lx\n",
 
53
           stringify(OP) "l", op0h, op0, s1, resh, res, flags & CC_MASK);
 
54
}
 
55
 
 
56
#if defined(__x86_64__)
 
57
void glue(glue(test_, OP), q)(long op0h, long op0, long op1) 
 
58
{
 
59
    long res, s1, flags, resh;
 
60
    s1 = op1;
 
61
    resh = op0h;
 
62
    res = op0;
 
63
    flags = 0;
 
64
    asm ("push %5\n\t"
 
65
         "popf\n\t"
 
66
         stringify(OP) "q %3\n\t" 
 
67
         "pushf\n\t"
 
68
         "pop %1\n\t"
 
69
         : "=a" (res), "=g" (flags), "=d" (resh)
 
70
         : "q" (s1), "0" (res), "1" (flags), "2" (resh));
 
71
    printf("%-10s AH=" FMTLX " AL=" FMTLX " B=" FMTLX " RH=" FMTLX " RL=" FMTLX " CC=%04lx\n",
 
72
           stringify(OP) "q", op0h, op0, s1, resh, res, flags & CC_MASK);
 
73
}
 
74
#endif
 
75
 
 
76
#undef OP