Code Review
/
kvmfornfv.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
history
|
raw
|
HEAD
Add qemu 2.4.0
[kvmfornfv.git]
/
qemu
/
tests
/
tcg
/
mips
/
mips32-dsp
/
addq_s_ph.c
1
#include<stdio.h>
2
#include<assert.h>
3
4
int main()
5
{
6
int rd, rs, rt;
7
int dsp;
8
int result;
9
10
rs = 0xFFFFFFFF;
11
rt = 0x10101010;
12
result = 0x100F100F;
13
__asm
14
("addq_s.ph %0, %1, %2\n\t"
15
: "=r"(rd)
16
: "r"(rs), "r"(rt)
17
);
18
assert(result == rd);
19
20
rs = 0x3712847D;
21
rt = 0x0031AF2D;
22
result = 0x37438000;
23
__asm
24
("addq_s.ph %0, %1, %2\n\t"
25
: "=r"(rd)
26
: "r"(rs), "r"(rt)
27
);
28
assert(result == rd);
29
30
__asm
31
("rddsp %0\n\t"
32
: "=r"(dsp)
33
);
34
assert(((dsp >> 20) & 0x01) == 1);
35
36
rs = 0x7fff847D;
37
rt = 0x0031AF2D;
38
result = 0x7fff8000;
39
__asm
40
("addq_s.ph %0, %1, %2\n\t"
41
: "=r"(rd)
42
: "r"(rs), "r"(rt)
43
);
44
assert(result == rd);
45
46
__asm
47
("rddsp %0\n\t"
48
: "=r"(dsp)
49
);
50
assert(((dsp >> 20) & 0x01) == 1);
51
52
rs = 0x8030847D;
53
rt = 0x8a00AF2D;
54
result = 0x80008000;
55
__asm
56
("addq_s.ph %0, %1, %2\n\t"
57
: "=r"(rd)
58
: "r"(rs), "r"(rt)
59
);
60
assert(result == rd);
61
62
__asm
63
("rddsp %0\n\t"
64
: "=r"(dsp)
65
);
66
assert(((dsp >> 20) & 0x01) == 1);
67
68
return 0;
69
}