xref: /openbmc/qemu/tests/tcg/openrisc/test_add.c (revision fcf5ef2a)
1 #include <stdio.h>
2 
3 int main(void)
4 {
5     int a, b, d;
6     int result;
7 
8     a = 0x100;
9     b = 0x100;
10     result = 0x200;
11     __asm
12     ("l.add %0, %0, %1\n\t"
13      : "+r"(a)
14      : "r"(b)
15     );
16     if (a != result) {
17         printf("add error\n");
18         return -1;
19     }
20 
21     a = 0xffff;
22     b = 0x1;
23     result = 0x10000;
24     __asm
25     ("l.add %0, %0, %1\n\t"
26      : "+r"(a)
27      : "r"(b)
28     );
29     if (a != result) {
30         printf("add error\n");
31         return -1;
32     }
33 
34     a = 0x7fffffff;
35     b = 0x1;
36     __asm
37     ("l.add %0, %1, %2\n\t"
38      : "=r"(d)
39      : "r"(b), "r"(a)
40     );
41 
42     return 0;
43 }
44