qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

test_mul.c (939B)


      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 }