Annotation of sys/arch/sh/include/sh_opcode.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: sh_opcode.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $ */
2: /* $NetBSD: sh_opcode.h,v 1.3 2002/04/28 17:10:36 uch Exp $ */
3:
4: typedef union {
5: unsigned word;
6:
7: #if _BYTE_ORDER == BIG_ENDIAN
8: struct {
9: unsigned op: 16;
10: } oType;
11:
12: struct {
13: unsigned op1: 4;
14: unsigned n: 4;
15: unsigned op2: 8;
16: } nType;
17:
18: struct {
19: unsigned op1: 4;
20: unsigned m: 4;
21: unsigned op2: 8;
22: } mType;
23:
24: struct {
25: unsigned op1: 4;
26: unsigned n: 4;
27: unsigned m: 4;
28: unsigned op2: 4;
29: } nmType;
30:
31: struct {
32: unsigned op: 8;
33: unsigned m: 4;
34: unsigned d: 4;
35: } mdType;
36:
37: struct {
38: unsigned op: 8;
39: unsigned n: 4;
40: unsigned d: 4;
41: } nd4Type;
42:
43: struct {
44: unsigned op: 4;
45: unsigned n: 4;
46: unsigned m: 4;
47: unsigned d: 4;
48: } nmdType;
49:
50: struct {
51: unsigned op: 8;
52: unsigned d: 8;
53: } dType;
54:
55: struct {
56: unsigned op: 4;
57: unsigned d: 12;
58: } d12Type;
59:
60: struct {
61: unsigned op: 4;
62: unsigned n: 4;
63: unsigned d: 8;
64: } nd8Type;
65:
66: struct {
67: unsigned op: 8;
68: unsigned i: 8;
69: } iType;
70:
71: struct {
72: unsigned op: 4;
73: unsigned n: 4;
74: unsigned i: 8;
75: } niType;
76: #endif
77: #if _BYTE_ORDER == LITTLE_ENDIAN
78: struct {
79: unsigned op: 16;
80: } oType;
81:
82: struct {
83: unsigned op2: 8;
84: unsigned n: 4;
85: unsigned op1: 4;
86: } nType;
87:
88: struct {
89: unsigned op2: 8;
90: unsigned m: 4;
91: unsigned op1: 4;
92: } mType;
93:
94: struct {
95: unsigned op2: 4;
96: unsigned m: 4;
97: unsigned n: 4;
98: unsigned op1: 4;
99: } nmType;
100:
101: struct {
102: unsigned d: 4;
103: unsigned m: 4;
104: unsigned op: 8;
105: } mdType;
106:
107: struct {
108: unsigned d: 4;
109: unsigned n: 4;
110: unsigned op: 8;
111: } nd4Type;
112:
113: struct {
114: unsigned d: 4;
115: unsigned m: 4;
116: unsigned n: 4;
117: unsigned op: 4;
118: } nmdType;
119:
120: struct {
121: unsigned d: 8;
122: unsigned op: 8;
123: } dType;
124:
125: struct {
126: unsigned d: 12;
127: unsigned op: 4;
128: } d12Type;
129:
130: struct {
131: unsigned d: 8;
132: unsigned n: 4;
133: unsigned op: 4;
134: } nd8Type;
135:
136: struct {
137: unsigned i: 8;
138: unsigned op: 8;
139: } iType;
140:
141: struct {
142: unsigned i: 8;
143: unsigned n: 4;
144: unsigned op: 4;
145: } niType;
146: #endif
147: } InstFmt;
148:
149: #define OP_BF 0x8b
150: #define OP_BFS 0x8f
151: #define OP_BT 0x89
152: #define OP_BTS 0x8d
153: #define OP_BRA 0xa
154: #define OP_BSR 0xb
155: #define OP1_BRAF 0x0
156: #define OP2_BRAF 0x23
157: #define OP1_BSRF 0x0
158: #define OP2_BSRF 0x03
159: #define OP1_JMP 0x4
160: #define OP2_JMP 0x2b
161: #define OP1_JSR 0x4
162: #define OP2_JSR 0x0b
163: #define OP_RTS 0xffff
CVSweb