1 #include<stdio.h>
2 #include<assert.h>
3
main()4 int 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