Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / mips / mips64-dsp / muleq_s_w_phr.c
1 #include "io.h"
2
3 int main(void)
4 {
5     long long rd, rs, rt, dsp;
6     long long result, resultdsp;
7
8     rs = 0x8000;
9     rt = 0x8000;
10     result = 0x7FFFFFFF;
11     resultdsp = 1;
12
13     __asm
14         ("muleq_s.w.phr %0, %2, %3\n\t"
15          "rddsp %1\n\t"
16          : "=r"(rd), "=r"(dsp)
17          : "r"(rs), "r"(rt)
18         );
19     dsp = (dsp >> 21) & 0x01;
20     if ((rd  != result) || (dsp != resultdsp)) {
21         printf("muleq_s.w.phr wrong\n");
22
23         return -1;
24     }
25
26     rs = 0x1234;
27     rt = 0x4321;
28     result = 0x98be968;
29     resultdsp = 1;
30
31     __asm
32         ("muleq_s.w.phr %0, %2, %3\n\t"
33          "rddsp %1\n\t"
34          : "=r"(rd), "=r"(dsp)
35          : "r"(rs), "r"(rt)
36         );
37     dsp = (dsp >> 21) & 0x01;
38     if ((rd  != result) || (dsp != resultdsp)) {
39         printf("muleq_s.w.phr wrong\n");
40
41         return -1;
42     }
43
44     return 0;
45 }