loop.c - vx32 - Local 9vx git repository for patches.
(HTM) git clone git://r-36.net/vx32
(DIR) Log
(DIR) Files
(DIR) Refs
---
loop.c (633B)
---
1
2 int test1()
3 {
4 int n;
5
6 asm volatile(
7 "movl $0, %%eax\n"
8 "movl $20, %%ecx\n"
9 "1:\n"
10 "incl %%eax\n"
11 "loop 1b\n"
12 : "=a" (n)
13 : "c" (0));
14
15 if(n != 20)
16 return 1;
17 return 0;
18 }
19
20 int test2()
21 {
22 int n;
23
24 asm volatile(
25 "movl $20, %%eax\n"
26 "movl $20, %%ecx\n"
27 "1:\n"
28 "decl %%eax\n"
29 "loopnz 1b\n"
30 : "=a" (n)
31 : "c" (0));
32
33 if(n != 0)
34 return 1;
35 return 0;
36 }
37
38 int test3()
39 {
40 int n;
41
42 asm volatile(
43 "movl $20, %%eax\n"
44 "movl $20, %%ecx\n"
45 "1:\n"
46 "decl %%eax\n"
47 "loopz 1b\n"
48 : "=a" (n)
49 : "c" (0));
50
51 if(n != 1)
52 return 1;
53 return 0;
54 }
55
56 int
57 main(void)
58 {
59 return test1() ||
60 test2() ||
61 test3();
62 }