Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / mips / mips64-dsp / dextrv_rs_l.c
1 #include "io.h"
2
3 int main(void)
4 {
5     long long rt, rs, dsp;
6     long long achi, acli;
7     long long res, resdsp;
8
9     achi = 0x87654321;
10     acli = 0x12345678;
11     rs = 0x8;
12
13     res = 0x8000000000000000;
14     resdsp = 0x1;
15
16     __asm
17         ("mthi %2, $ac1\n\t"
18          "mtlo %3, $ac1\n\t"
19          "dextrv_rs.l %0, $ac1, %4\n\t"
20          "rddsp %1\n\t"
21          : "=r"(rt), "=r"(dsp)
22          : "r"(achi), "r"(acli), "r"(rs)
23         );
24     dsp = (dsp >> 23) & 0x1;
25
26     if ((dsp != resdsp) || (rt != res)) {
27         printf("dextrv_rs.l error\n");
28         return -1;
29     }
30
31     achi = 0x00;
32     acli = 0x12345678;
33     rs = 0x0;
34
35     res = 0x12345678;
36     resdsp = 0x1;
37
38     __asm
39         ("mthi %2, $ac1\n\t"
40          "mtlo %3, $ac1\n\t"
41          "dextrv_rs.l %0, $ac1, %4\n\t"
42          "rddsp %1\n\t"
43          : "=r"(rt), "=r"(dsp)
44          : "r"(achi), "r"(acli), "r"(rs)
45         );
46     dsp = (dsp >> 23) & 0x1;
47
48     if ((dsp != resdsp) || (rt != res)) {
49         printf("dextrv_rs.l error\n");
50         return -1;
51     }
52
53     return 0;
54 }