1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
#include <stdio.h>
#include <stdlib.h>
#define N 64
static void
gen_inputtest (void)
{
int i;
printf ("// Input test program\n");
printf ("#include \"vu.mac\"\n");
printf (".gpr VUTMP\n");
printf (".gpr TMP\n");
for (i = 0; i < N; i += 2)
{
printf (".input I%d_L %d\n", i, i);
printf (".input I%d_R %d\n", i, i + 1);
}
for (i = 0; i < N; i += 2)
{
if (!(i % 16))
printf (".parm G%x 0 group\n", i);
printf (".parm IVU%d 0 stereopeak\n", i);
}
for (i = 0; i < N; i += 2)
{
printf ("ACC3(TMP, I%d_L, 0, 0)\n", i);
printf ("VU(IVU%d_L, TMP)\n", i);
printf ("ACC3(TMP, I%d_R, 0, 0)\n", i);
printf ("VU(IVU%d_R, TMP)\n", i);
}
}
static void
gen_outputtest (void)
{
int i;
printf ("// Output test program\n");
printf ("#include \"vu.mac\"\n");
printf (".parm VU 0 stereopeak\n");
printf (".gpr VUTMP\n");
printf (".gpr TMP\n");
printf (".gpr TMP_L\n");
printf (".gpr TMP_R\n");
printf (".send TEST_L 0\n");
printf (".send TEST_R 1\n");
for (i = 0; i < N; i += 2)
{
printf (".output O%d_L %d\n", i, i);
printf (".output O%d_R %d\n", i, i + 1);
}
for (i = 0; i < N; i += 2)
{
if (!(i % 16))
printf (".parm G%x 0 group\n", i);
printf (".parm OUT%d 0 stereo\n", i);
}
printf ("ACC3(TMP_L, TEST_L, 0, 0)\n");
printf ("ACC3(TMP_R, TEST_R, 0, 0)\n");
printf ("VU(VU_L, TMP_L)\n");
printf ("VU(VU_R, TMP_R)\n");
for (i = 0; i < N; i += 2)
{
printf ("MACS(O%d_L, 0, TMP_L, OUT%d_L)\n", i, i);
printf ("MACS(O%d_R, 0, TMP_R, OUT%d_R)\n", i, i);
}
}
int
main (int argc, char *argv[])
{
if (argc < 2)
exit (-1);
if (strcmp (argv[1], "in") == 0)
gen_inputtest ();
if (strcmp (argv[1], "out") == 0)
gen_outputtest ();
exit (0);
}
|