block: use drained section in bdrv_close
[qemu/ar7.git] / tests / tcg / mips / mips64-dspr2 / dpsqx_sa_w_ph.c
blob24c888134d7048cf4ada3f4ea67239ec6f496eba
1 #include"io.h"
2 int main()
4 long long rs, rt, dsp;
5 long long ach = 5, acl = 5;
6 long long resulth, resultl, resultdsp;
8 rs = 0xBC0123AD;
9 rt = 0x01643721;
10 resulth = 0x00;
11 resultl = 0x7FFFFFFF;
12 resultdsp = 0x01;
13 __asm
14 ("mthi %0, $ac1\n\t"
15 "mtlo %1, $ac1\n\t"
16 "dpsqx_sa.w.ph $ac1, %3, %4\n\t"
17 "mfhi %0, $ac1\n\t"
18 "mflo %1, $ac1\n\t"
19 "rddsp %2\n\t"
20 : "+r"(ach), "+r"(acl), "=r"(dsp)
21 : "r"(rs), "r"(rt)
23 dsp = (dsp >> 17) & 0x01;
24 if (dsp != resultdsp || ach != resulth || acl != resultl) {
25 printf("dpsqx_sa.w.ph error\n");
26 return -1;
29 ach = 0x8c0b354A;
30 acl = 0xbbc02249;
31 rs = 0x800023AD;
32 rt = 0x01648000;
33 resulth = 0xffffffffffffffff;
34 resultl = 0xffffffff80000000;
35 resultdsp = 0x01;
36 __asm
37 ("mthi %0, $ac1\n\t"
38 "mtlo %1, $ac1\n\t"
39 "dpsqx_sa.w.ph $ac1, %3, %4\n\t"
40 "mfhi %0, $ac1\n\t"
41 "mflo %1, $ac1\n\t"
42 "rddsp %2\n\t"
43 : "+r"(ach), "+r"(acl), "=r"(dsp)
44 : "r"(rs), "r"(rt)
46 dsp = (dsp >> 17) & 0x01;
47 if (dsp != resultdsp || ach != resulth || acl != resultl) {
48 printf("dpsqx_sa.w.ph error\n");
49 return -1;
52 return 0;