qemu

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

test_dsp_r1_shilov.c (879B)


      1 #include<stdio.h>
      2 #include<assert.h>
      3 
      4 int main()
      5 {
      6     int rs, ach, acl;
      7     int resulth, resultl;
      8 
      9     rs  = 0x0F;
     10     ach = 0xBBAACCFF;
     11     acl = 0x1C3B001D;
     12 
     13     resulth = 0x17755;
     14     resultl = 0x99fe3876;
     15 
     16     __asm
     17         ("mthi %0, $ac1\n\t"
     18          "mtlo %1, $ac1\n\t"
     19          "shilov $ac1, %2\n\t"
     20          "mfhi %0, $ac1\n\t"
     21          "mflo %1, $ac1\n\t"
     22          : "+r"(ach), "+r"(acl)
     23          : "r"(rs)
     24         );
     25     assert(ach == resulth);
     26     assert(acl == resultl);
     27 
     28 
     29     rs  = 0xffffffff;
     30     ach = 0x1;
     31     acl = 0x80000000;
     32 
     33     resulth = 0x3;
     34     resultl = 0x0;
     35 
     36     __asm
     37         ("mthi %0, $ac1\n\t"
     38          "mtlo %1, $ac1\n\t"
     39          "shilov $ac1, %2\n\t"
     40          "mfhi %0, $ac1\n\t"
     41          "mflo %1, $ac1\n\t"
     42          : "+r"(ach), "+r"(acl)
     43          : "r"(rs)
     44         );
     45     assert(ach == resulth);
     46     assert(acl == resultl);
     47 
     48     return 0;
     49 }