1 #include<stdio.h>
2 #include<assert.h>
3
main()4 int main()
5 {
6 int rd, rs, rt, dsp;
7 int result, resultdsp;
8
9 rs = 0x03;
10 rt = 0x87654321;
11 result = 0x38281808;
12 resultdsp = 0x01;
13
14 __asm
15 ("shllv.qb %0, %2, %3\n\t"
16 "rddsp %1\n\t"
17 : "=r"(rd), "=r"(dsp)
18 : "r"(rt), "r"(rs)
19 );
20 dsp = (dsp >> 22) & 0x01;
21 assert(rd == result);
22
23 rs = 0x00;
24 rt = 0x87654321;
25 result = 0x87654321;
26 resultdsp = 0x01;
27
28 __asm
29 ("shllv.qb %0, %2, %3\n\t"
30 "rddsp %1\n\t"
31 : "=r"(rd), "=r"(dsp)
32 : "r"(rt), "r"(rs)
33 );
34 dsp = (dsp >> 22) & 0x01;
35 assert(rd == result);
36
37 return 0;
38 }
39