test_mul.c (939B)
1#include <stdio.h> 2 3int 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}