856
|
1 // $HeadURL$
|
|
2 // $Date$
|
|
3 // $Author$
|
705
|
4
|
|
5 module dstress.run.a.asm_setpo_01;
|
|
6
|
1395
|
7 version(D_InlineAsm_X86){
|
|
8 version = test;
|
|
9 }else version(D_Inline_Asm_X86_64){
|
|
10 version = test;
|
|
11 }else{
|
|
12 static assert(0, "DSTRESS{XFAIL}: no inline x86 asm support");
|
|
13 }
|
|
14
|
|
15 version(test){
|
|
16 int main(){
|
705
|
17 ubyte a;
|
1044
|
18
|
705
|
19 a = a.max;
|
1044
|
20
|
705
|
21 asm{
|
|
22 mov EAX, 0;
|
|
23 inc EAX;
|
|
24 setpo a;
|
|
25 }
|
1044
|
26
|
705
|
27 assert(a == 1);
|
1044
|
28
|
705
|
29 a = a.max;
|
1044
|
30
|
705
|
31 asm{
|
|
32 mov EAX, 1;
|
|
33 inc EAX;
|
|
34 setpo a;
|
|
35 }
|
1044
|
36
|
705
|
37 assert(a == 1);
|
1044
|
38
|
705
|
39 a = a.max;
|
1044
|
40
|
705
|
41 asm{
|
|
42 mov EAX, 2;
|
|
43 inc EAX;
|
|
44 setpo a;
|
|
45 }
|
1044
|
46
|
705
|
47 assert(a == 0);
|
1044
|
48
|
705
|
49 a = a.max;
|
1044
|
50
|
705
|
51 asm{
|
|
52 mov EAX, 3;
|
|
53 inc EAX;
|
|
54 setpo a;
|
|
55 }
|
1044
|
56
|
705
|
57 assert(a == 1);
|
1044
|
58
|
705
|
59 return 0;
|
|
60 }
|
1395
|
61 }
|