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