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 = 0x10FF01FF;
11 rt = 0x10010001;
12 result = 0x20FF01FF;
13 __asm
14 ("addu_s.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) & 0x1) == 1);
21
22 rs = 0xFFFF1111;
23 rt = 0x00020001;
24 result = 0xFFFF1112;
25 __asm
26 ("addu_s.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) & 0x1) == 1);
33
34 return 0;
35 }
36