test_dsp_r1_pick_ph.c (889B)
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}