1d901eff3SJia Liu #include <stdio.h>
2d901eff3SJia Liu
main(void)3d901eff3SJia Liu int main(void)
4d901eff3SJia Liu {
5d901eff3SJia Liu int a, b, c;
6d901eff3SJia Liu int result;
7d901eff3SJia Liu
8d901eff3SJia Liu a = 1;
9*14a650ecSSebastian Macke result = 0x0;
10d901eff3SJia Liu __asm
11*14a650ecSSebastian Macke ("l.add r1, r1, r0\n\t" /* clear carry */
12*14a650ecSSebastian Macke "l.addic %0, %0, 0xffff\n\t"
13d901eff3SJia Liu : "+r"(a)
14d901eff3SJia Liu );
15d901eff3SJia Liu if (a != result) {
16d901eff3SJia Liu printf("first addic error\n");
17d901eff3SJia Liu return -1;
18d901eff3SJia Liu }
19d901eff3SJia Liu
20*14a650ecSSebastian Macke a = -1;
21d901eff3SJia Liu result = 0x201;
22d901eff3SJia Liu __asm
23*14a650ecSSebastian Macke ("l.add r1, r1, r0\n\t" /* clear carry */
24*14a650ecSSebastian Macke "l.addic %0, %0, 0x1\n\t"
25d901eff3SJia Liu "l.ori %0, r0, 0x100\n\t"
26d901eff3SJia Liu "l.addic %0, %0, 0x100\n\t"
27d901eff3SJia Liu : "+r"(a)
28d901eff3SJia Liu );
29d901eff3SJia Liu if (a != result) {
30d901eff3SJia Liu printf("second addic error\n");
31d901eff3SJia Liu return -1;
32d901eff3SJia Liu }
33d901eff3SJia Liu
34d901eff3SJia Liu return 0;
35d901eff3SJia Liu }
36