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
/
extpv.c
1
#include<stdio.h>
2
#include<assert.h>
3
4
int main()
5
{
6
int rt, ac, ach, acl, dsp;
7
int result;
8
9
ach = 0x05;
10
acl = 0xB4CB;
11
dsp = 0x07;
12
ac = 0x03;
13
result = 0x000C;
14
15
__asm
16
("wrdsp %1, 0x01\n\t"
17
"mthi %2, $ac1\n\t"
18
"mtlo %3, $ac1\n\t"
19
"extpv %0, $ac1, %4\n\t"
20
"rddsp %1\n\t"
21
: "=r"(rt), "+r"(dsp)
22
: "r"(ach), "r"(acl), "r"(ac)
23
);
24
dsp = (dsp >> 14) & 0x01;
25
assert(dsp == 0);
26
assert(result == rt);
27
28
ach = 0x05;
29
acl = 0xB4CB;
30
dsp = 0x01;
31
32
__asm
33
("wrdsp %1, 0x01\n\t"
34
"mthi %2, $ac1\n\t"
35
"mtlo %3, $ac1\n\t"
36
"extpv %0, $ac1, %4\n\t"
37
"rddsp %1\n\t"
38
: "=r"(rt), "+r"(dsp)
39
: "r"(ach), "r"(acl), "r"(ac)
40
);
41
dsp = (dsp >> 14) & 0x01;
42
assert(dsp == 1);
43
44
return 0;
45
}