qemu/tests/tcg/mips/mips32-dsp/pick_ph.c
<<
>>
Prefs
   1#include<stdio.h>
   2#include<assert.h>
   3
   4int main()
   5{
   6    int rd, rs, rt, dsp;
   7    int result;
   8
   9    rs = 0x12345678;
  10    rt = 0x87654321;
  11    dsp = 0x0A000000;
  12    result = 0x12344321;
  13
  14    __asm
  15        ("wrdsp %3, 0x10\n\t"
  16         "pick.ph %0, %1, %2\n\t"
  17         : "=r"(rd)
  18         : "r"(rs), "r"(rt), "r"(dsp)
  19        );
  20    assert(rd == result);
  21
  22    rs = 0x12345678;
  23    rt = 0x87654321;
  24    dsp = 0x03000000;
  25    result = 0x12345678;
  26
  27    __asm
  28        ("wrdsp %3, 0x10\n\t"
  29         "pick.ph %0, %1, %2\n\t"
  30         : "=r"(rd)
  31         : "r"(rs), "r"(rt), "r"(dsp)
  32        );
  33    assert(rd == result);
  34
  35    rs = 0x12345678;
  36    rt = 0x87654321;
  37    dsp = 0x00000000;
  38    result = 0x87654321;
  39
  40    __asm
  41        ("wrdsp %3, 0x10\n\t"
  42         "pick.ph %0, %1, %2\n\t"
  43         : "=r"(rd)
  44         : "r"(rs), "r"(rt), "r"(dsp)
  45        );
  46    assert(rd == result);
  47
  48    return 0;
  49}
  50