qemu

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

test_dsp_r1_addq_ph.c (837B)


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