gxregs.h
2.85 KB
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
/*---------------------------------------------------------------------
Copyright (C) 1997, Nintendo.
File gxregs.h
Coded by Yoshitaka Yasumoto. Jan 23, 1997.
$Id: gxregs.h,v 1.1.1.1 2002/05/02 03:29:11 blythe Exp $
---------------------------------------------------------------------*/
#ifndef ASSERT_UNNAME
#define Assign(n, reg) .unname UNUSE##reg .name n, $##reg
#define EndAssign(n, reg) .unname n .name UNUSE##reg, $##reg
#define FixedAssign Assign
#define R(a) .name UNUSE##a, $##a
R(0) R(1) R(2) R(3) R(4) R(5) R(6) R(7)
R(8) R(9) R(10) R(11) R(12) R(13) R(14) R(15)
R(16) R(17) R(18) R(19) R(20) R(21) R(22) R(23)
R(24) R(25) R(26) R(27) R(28) R(29) R(30) R(31)
R(v0) R(v1) R(v2) R(v3) R(v4) R(v5) R(v6) R(v7)
R(v8) R(v9) R(v10) R(v11) R(v12) R(v13) R(v14) R(v15)
R(v16) R(v17) R(v18) R(v19) R(v20) R(v21) R(v22) R(v23)
R(v24) R(v25) R(v26) R(v27) R(v28) R(v29) R(v30) R(v31)
#undef R
Assign(zero, 0)
Assign(sys0, 11) /* DMA 系命令で tmp として使用 */
Assign(sys1, 12)
Assign(outpThd, 22) /* F3DEX と共通 */
Assign(outp, 23) /* F3DEX と共通 */
Assign(gfx1, 24) /* F3DEX と共通 */
Assign(gfx0, 25) /* F3DEX と共通 */
Assign(inp, 26) /* F3DEX と共通 */
Assign(dinp, 27) /* F3DEX と共通 */
Assign(return, 31)
Assign(vzero, v0) /* 全ての要素が 0 */
Assign(vone, v1) /* 全ての要素が 1 */
Assign(vconst1, v30)
Assign(vconst0, v31)
#ifdef UCODE_S2DEX2
Assign(vecptr, 30)
Assign(vtmp, v27)
Assign(vconst3, v28)
Assign(vconst2, v29)
#define vconst vconst0
#else
Assign(vtmp, v29)
#endif
#else
EndAssign(zero, 0)
EndAssign(sys0, 11)
EndAssign(sys1, 12)
EndAssign(outpThd, 22) /* F3DEX と共通 */
EndAssign(outp, 23) /* F3DEX と共通 */
EndAssign(gfx1, 24) /* F3DEX と共通 */
EndAssign(gfx0, 25) /* F3DEX と共通 */
EndAssign(inp, 26) /* F3DEX と共通 */
EndAssign(dinp, 27) /* F3DEX と共通 */
EndAssign(return, 31)
EndAssign(vzero, v0) /* 全ての要素が 0 */
EndAssign(vone, v1) /* 全ての要素が 1 */
EndAssign(vconst1, v30)
EndAssign(vconst0, v31)
#ifdef UCODE_S2DEX2
EndAssign(vecptr, 30)
EndAssign(vtmp, v27)
EndAssign(vconst3, v28)
EndAssign(vconst2, v29)
#undef vconst
#else
EndAssign(vtmp, v29)
#endif
#define R(a) .unname UNUSE##a .name UNUSE##a, $##a
R(0) R(1) R(2) R(3) R(4) R(5) R(6) R(7)
R(8) R(9) R(10) R(11) R(12) R(13) R(14) R(15)
R(16) R(17) R(18) R(19) R(20) R(21) R(22) R(23)
R(24) R(25) R(26) R(27) R(28) R(29) R(30) R(31)
R(v0) R(v1) R(v2) R(v3) R(v4) R(v5) R(v6) R(v7)
R(v8) R(v9) R(v10) R(v11) R(v12) R(v13) R(v14) R(v15)
R(v16) R(v17) R(v18) R(v19) R(v20) R(v21) R(v22) R(v23)
R(v24) R(v25) R(v26) R(v27) R(v28) R(v29) R(v30) R(v31)
#undef R
#endif
/*======== End of gxregs.h ========*/