VirtualBox

source: vbox/trunk/src/recompiler/tests/test-i386-muldiv.h@ 9663

Last change on this file since 9663 was 2426, checked in by vboxsync, 18 years ago

Removed the old recompiler code. (wonder why subversion didn't pick up these changes right way)

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1
2void 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
20void 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
38void 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__)
57void 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
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette