master
c 61 lines 939 Bytes
Raw
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int a, b, c;
6 int result;
7
8 b = 0x4;
9 c = 0x1;
10 result = 0x4;
11 __asm
12 ("l.mul %0, %1, %2\n\t"
13 : "=r"(a)
14 : "r"(b), "r"(c)
15 );
16 if (a != result) {
17 printf("mul error\n");
18 return -1;
19 }
20
21 b = 0x1;
22 c = 0x0;
23 result = 0x0;
24 __asm
25 ("l.mul %0, %1, %2\n\t"
26 : "=r"(a)
27 : "r"(b), "r"(c)
28 );
29 if (a != result) {
30 printf("mul error\n");
31 return -1;
32 }
33
34 b = 0x1;
35 c = 0xff;
36 result = 0xff;
37 __asm
38 ("l.mul %0, %1, %2\n\t"
39 : "=r"(a)
40 : "r"(b), "r"(c)
41 );
42 if (a != result) {
43 printf("mul error\n");
44 return -1;
45 }
46
47 b = 0x7fffffff;
48 c = 0x2;
49 result = 0xfffffffe;
50 __asm
51 ("l.mul %0, %1, %2\n\t"
52 : "=r"(a)
53 : "r"(b), "r"(c)
54 );
55 if (a != result) {
56 printf("mul error\n");
57 return -1;
58 }
59
60 return 0;
61 }