qemu

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

test_dsp_r2_mul_ph.c (833B)


      1 #include<stdio.h>
      2 #include<assert.h>
      3 
      4 int main()
      5 {
      6     int rd, rs, rt, dsp;
      7     int result, resultdsp;
      8 
      9     rs = 0x03FB1234;
     10     rt = 0x0BCC4321;
     11     result = 0xF504F4B4;
     12     resultdsp = 1;
     13 
     14     __asm
     15         ("mul.ph %0, %2, %3\n\t"
     16          "rddsp %1\n\t"
     17          : "=r"(rd), "=r"(dsp)
     18          : "r"(rs), "r"(rt)
     19         );
     20     dsp = (dsp >> 21) & 0x01;
     21     assert(rd  == result);
     22     assert(dsp == resultdsp);
     23 
     24     dsp = 0;
     25     __asm
     26         ("wrdsp %0\n\t"
     27          :
     28          : "r"(dsp)
     29         );
     30 
     31     rs = 0x00210010;
     32     rt = 0x00110005;
     33     result = 0x2310050;
     34     resultdsp = 0;
     35 
     36     __asm
     37         ("mul.ph %0, %2, %3\n\t"
     38          "rddsp %1\n\t"
     39          : "=r"(rd), "=r"(dsp)
     40          : "r"(rs), "r"(rt)
     41         );
     42     dsp = (dsp >> 21) & 0x01;
     43     assert(rd  == result);
     44     assert(dsp == resultdsp);
     45 
     46     return 0;
     47 }