Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / mips / mips64-dsp / dshilo.c
1 #include "io.h"
2
3 int main(void)
4 {
5     long long achi, acli;
6     long long acho, aclo;
7     long long reshi, reslo;
8
9     achi = 0x87654321;
10     acli = 0x12345678;
11
12     reshi = 0xfffffffff8765432;
13     reslo = 0x1234567;
14
15     __asm
16         ("mthi %2, $ac1\n\t"
17          "mtlo %3, $ac1\n\t"
18          "dshilo $ac1, 0x4\n\t"
19          "mfhi %0, $ac1\n\t"
20          "mflo %1, $ac1\n\t"
21          : "=r"(acho), "=r"(aclo)
22          : "r"(achi), "r"(acli)
23         );
24
25     if ((acho != reshi) || (aclo != reslo)) {
26         printf("1 dshilo error\n");
27         return -1;
28     }
29
30     achi = 0x87654321;
31     acli = 0x12345678;
32
33     reshi = 0x1234567;
34     reslo = 0x00;
35
36     __asm
37         ("mthi %2, $ac1\n\t"
38          "mtlo %3, $ac1\n\t"
39          "dshilo $ac1, -60\n\t"
40          "mfhi %0, $ac1\n\t"
41          "mflo %1, $ac1\n\t"
42          : "=r"(acho), "=r"(aclo)
43          : "r"(achi), "r"(acli)
44         );
45
46     if ((acho != reshi) || (aclo != reslo)) {
47         printf("2 dshilo error\n");
48         return -1;
49     }
50
51     return 0;
52 }