master
c 45 lines 657 Bytes
Raw
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int a, b, c;
6 int result;
7
8 a = 0;
9 b = 3;
10 result = 1;
11 __asm
12 ("1:\n\t"
13 "l.addi %0, %0, 1\n\t"
14 "l.sfgts %0, %1\n\t"
15 "l.bf 1b\n\t"
16 "l.nop\n\t"
17 : "+r"(a)
18 : "r"(b)
19 );
20 if (a != result) {
21 printf("sfgts error\n");
22 return -1;
23 }
24
25
26 a = 0xff;
27 b = 3;
28 c = 1;
29 result = 3;
30 __asm
31 ("1:\n\t"
32 "l.sub %0, %0, %2\n\t"
33 "l.sfgts %0, %1\n\t"
34 "l.bf 1b\n\t"
35 "l.nop\n\t"
36 : "+r"(a)
37 : "r"(b), "r"(c)
38 );
39 if (a != result) {
40 printf("sfgts error\n");
41 return -1;
42 }
43
44 return 0;
45 }