test_dsp_r1_addu_qb.c (675B)
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}