qemu/tests/tcg/mips/user/ase/dsp/test_dsp_r2_addu_s_ph.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     = 0x00FE00FE;
  11    rt     = 0x00020001;
  12    result = 0x010000FF;
  13    __asm
  14        ("addu_s.ph %0, %1, %2\n\t"
  15         : "=r"(rd)
  16         : "r"(rs), "r"(rt)
  17        );
  18    assert(rd == result);
  19
  20    rs     = 0xFFFF1111;
  21    rt     = 0x00020001;
  22    result = 0xFFFF1112;
  23    __asm
  24        ("addu_s.ph %0, %2, %3\n\t"
  25         "rddsp %1\n\t"
  26         : "=r"(rd), "=r"(dsp)
  27         : "r"(rs), "r"(rt)
  28        );
  29    assert(rd == result);
  30    assert(((dsp >> 20) & 0x01) == 1);
  31
  32    return 0;
  33}
  34