qemu/tests/tcg/mips/user/ase/dsp/test_dsp_r1_addu_qb.c
<<
>>
Prefs
   1#include<stdio.h>
   2#include<assert.h>
   3
   4int main()
   5{
   6    int rd, rs, rt;
   7    int dsp;
   8    int result;
   9
  10    rs     = 0x00FF00FF;
  11    rt     = 0x00010001;
  12    result = 0x00000000;
  13    __asm
  14        ("addu.qb %0, %2, %3\n\t"
  15         "rddsp %1\n\t"
  16         : "=r"(rd), "=r"(dsp)
  17         : "r"(rs), "r"(rt)
  18        );
  19    assert(rd == result);
  20    assert(((dsp >> 20) & 0x01) == 1);
  21
  22    rs     = 0xFFFF1111;
  23    rt     = 0x00020001;
  24    result = 0xFF011112;
  25    __asm
  26        ("addu.qb %0, %2, %3\n\t"
  27         "rddsp %1\n\t"
  28         : "=r"(rd), "=r"(dsp)
  29         : "r"(rs), "r"(rt)
  30        );
  31    assert(rd == result);
  32    assert(((dsp >> 20) & 0x01) == 1);
  33
  34    return 0;
  35}
  36