Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include	"l.h"
2
 
3
#define	X	99
4
 
5
Optab	optab[] =
6
{
7
	{ ATEXT,	C_LEXT,	C_NONE,	C_LCON, 	 0, 0, 0 },
8
	{ ATEXT,	C_LEXT,	C_REG,	C_LCON, 	 0, 0, 0 },
9
	{ ANOP,		C_NONE,	C_NONE,	C_NONE, 	 0, 0, 0 },
10
 
11
	{ AMOVW,	C_REG,	C_NONE,	C_REG,		 1, 4, 0 },
12
 
13
	{ AMOVW,	C_SCON,	C_NONE,	C_REG,		 2, 4, 0 },
14
	{ AMOVW,	C_SACON,C_NONE,	C_REG,		 2, 4, REGSP },
15
	{ AMOVW,	C_SECON,C_NONE,	C_REG,		 2, 4, REGSB },
16
 
17
	{ AMOVW,	C_SOREG,C_NONE,	C_REG,		 3, 4, 0 },
18
	{ AMOVW,	C_ZOREG,C_REG,	C_REG,		 3, 4, 0 },
19
	{ AMOVW,	C_SAUTO,C_NONE,	C_REG,		 3, 4, REGSP },
20
	{ AMOVW,	C_SEXT,	C_NONE,	C_REG,		 3, 4, REGSB },
21
	{ AMOVB,	C_SOREG,C_NONE,	C_REG,		 3, 4, 0 },
22
	{ AMOVB,	C_ZOREG,C_REG,	C_REG,		 3, 4, 0 },
23
	{ AMOVB,	C_SAUTO,C_NONE,	C_REG,		 3, 4, REGSP },
24
	{ AMOVB,	C_SEXT,	C_NONE,	C_REG,		 3, 4, REGSB },
25
	{ AMOVD,	C_SOREG,C_NONE,	C_REG,		 3, 4, 0 },
26
	{ AMOVD,	C_ZOREG,C_REG,	C_REG,		 3, 4, 0 },
27
	{ AMOVD,	C_SAUTO,C_NONE,	C_REG,		 3, 4, REGSP },
28
	{ AMOVD,	C_SEXT,	C_NONE,	C_REG,		 3, 4, REGSB },
29
 
30
	{ AMOVW,	C_REG,	C_NONE,	C_SOREG,	 4, 4, 0 },
31
	{ AMOVW,	C_REG,	C_REG,	C_ZOREG,	 4, 4, 0 },
32
	{ AMOVW,	C_REG,	C_NONE,	C_SAUTO,	 4, 4, REGSP },
33
	{ AMOVW,	C_REG,	C_NONE,	C_SEXT,		 4, 4, REGSB },
34
	{ AMOVB,	C_REG,	C_NONE,	C_SOREG,	 4, 4, 0 },
35
	{ AMOVB,	C_REG,	C_REG,	C_ZOREG,	 4, 4, 0 },
36
	{ AMOVB,	C_REG,	C_NONE,	C_SAUTO,	 4, 4, REGSP },
37
	{ AMOVB,	C_REG,	C_NONE,	C_SEXT,		 4, 4, REGSB },
38
	{ AMOVD,	C_REG,	C_NONE,	C_SOREG,	 4, 4, 0 },
39
	{ AMOVD,	C_REG,	C_REG,	C_ZOREG,	 4, 4, 0 },
40
	{ AMOVD,	C_REG,	C_NONE,	C_SAUTO,	 4, 4, REGSP },
41
	{ AMOVD,	C_REG,	C_NONE,	C_SEXT,		 4, 4, REGSB },
42
 
43
	{ AMOVW,	C_LCON,	C_NONE,	C_REG,		 5, 8, 0 },
44
 
45
	{ AMOVW,	C_ASI,	C_NONE,	C_REG,		 6, 4, 0 },
46
	{ AMOVW,	C_ASI,	C_REG,	C_REG,		 6, 4, 0 },
47
	{ AMOVB,	C_ASI,	C_NONE,	C_REG,		 6, 4, 0 },
48
	{ AMOVB,	C_ASI,	C_REG,	C_REG,		 6, 4, 0 },
49
	{ AMOVD,	C_ASI,	C_NONE,	C_REG,		 6, 4, 0 },
50
	{ AMOVD,	C_ASI,	C_REG,	C_REG,		 6, 4, 0 },
51
 
52
	{ AMOVW,	C_REG,	C_NONE,	C_ASI,		 7, 4, 0 },
53
	{ AMOVW,	C_REG,	C_REG,	C_ASI,		 7, 4, 0 },
54
	{ AMOVB,	C_REG,	C_NONE,	C_ASI,		 7, 4, 0 },
55
	{ AMOVB,	C_REG,	C_REG,	C_ASI,		 7, 4, 0 },
56
	{ AMOVD,	C_REG,	C_NONE,	C_ASI,		 7, 4, 0 },
57
	{ AMOVD,	C_REG,	C_REG,	C_ASI,		 7, 4, 0 },
58
 
59
	{ AMOVW,	C_REG,	C_NONE,	C_PREG,		 8, 4, 0 },
60
	{ AMOVW,	C_PREG,	C_NONE,	C_REG,		 8, 4, 0 },
61
 
62
	{ AMOVB,	C_REG,	C_NONE,	C_REG,		 9, 8, 0 },
63
 
64
	{ AMOVW,	C_LACON,C_NONE,	C_REG,		10,12, REGSP },
65
	{ AMOVW,	C_LECON,C_NONE,	C_REG,		10,12, REGSB },
66
 
67
	{ AMOVW,	C_LOREG,C_NONE,	C_REG,		11,12, 0 },
68
	{ AMOVW,	C_LAUTO,C_NONE,	C_REG,		11,12, REGSP },
69
	{ AMOVW,	C_LEXT,	C_NONE,	C_REG,		11,12, REGSB },
70
	{ AMOVB,	C_LOREG,C_NONE,	C_REG,		11,12, 0 },
71
	{ AMOVB,	C_LAUTO,C_NONE,	C_REG,		11,12, REGSP },
72
	{ AMOVB,	C_LEXT,	C_NONE,	C_REG,		11,12, REGSB },
73
	{ AMOVD,	C_LOREG,C_NONE,	C_REG,		11,12, 0 },
74
	{ AMOVD,	C_LAUTO,C_NONE,	C_REG,		11,12, REGSP },
75
	{ AMOVD,	C_LEXT,	C_NONE,	C_REG,		11,12, REGSB },
76
 
77
	{ AMOVW,	C_REG,	C_NONE,	C_LOREG,	12,12, 0 },
78
	{ AMOVW,	C_REG,	C_NONE,	C_LAUTO,	12,12, REGSP },
79
	{ AMOVW,	C_REG,	C_NONE,	C_LEXT,		12,12, REGSB },
80
	{ AMOVB,	C_REG,	C_NONE,	C_LOREG,	12,12, 0 },
81
	{ AMOVB,	C_REG,	C_NONE,	C_LAUTO,	12,12, REGSP },
82
	{ AMOVB,	C_REG,	C_NONE,	C_LEXT,		12,12, REGSB },
83
	{ AMOVD,	C_REG,	C_NONE,	C_LOREG,	12,12, 0 },
84
	{ AMOVD,	C_REG,	C_NONE,	C_LAUTO,	12,12, REGSP },
85
	{ AMOVD,	C_REG,	C_NONE,	C_LEXT,		12,12, REGSB },
86
 
87
	{ AMOVW,	C_UCON,	C_NONE,	C_REG,		13, 4, 0 },
88
 
89
	{ AADD,		C_SCON,	C_NONE,	C_REG,		20, 4, 0 },
90
	{ AADD,		C_SCON,	C_REG,	C_REG,		20, 4, 0 },
91
 
92
	{ AADD,		C_REG,	C_NONE,	C_REG,		21, 4, 0 },
93
	{ AADD,		C_REG,	C_REG,	C_REG,		21, 4, 0 },
94
 
95
	{ AADD,		C_LCON,	C_NONE,	C_REG,		22,12, 0 },
96
	{ AADD,		C_LCON,	C_REG,	C_REG,		22,12, 0 },
97
 
98
	{ ACMP,		C_REG,	C_NONE,	C_REG,		23, 4, 0 },
99
	{ ACMP,		C_REG,	C_NONE,	C_SCON,		24, 4, 0 },
100
	{ ACMP,		C_SCON,	C_NONE,	C_REG,		25, 8, 0 },
101
 
102
	{ AADD,		C_UCON,	C_NONE,	C_REG,		26, 8, 0 },
103
	{ AADD,		C_UCON,	C_REG,	C_REG,		26, 8, 0 },
104
 
105
	{ AJMP,		C_NONE,	C_NONE,	C_SOREG,	30, 4, 0 },
106
	{ AJMPL,	C_NONE,	C_NONE,	C_SOREG,	30, 4, 0 },
107
 
108
	{ AJMP,		C_NONE,	C_NONE,	C_SBRA,		31, 4, 0 },
109
	{ ABA,		C_NONE,	C_NONE,	C_SBRA,		31, 4, 0 },
110
 
111
	{ AJMPL,	C_NONE,	C_NONE,	C_LBRA,		32, 4, 0 },
112
 
113
	{ ATA,		C_REG,	C_NONE,	C_NONE,		33, 4, 0 },
114
	{ ARETT,	C_REG,	C_NONE,	C_REG,		34, 8, 0 },
115
 
116
	{ AMOVW,	C_SOREG,C_NONE,	C_FSR,		40, 4, 0 },
117
	{ AMOVW,	C_SAUTO,C_NONE,	C_FSR,		40, 4, REGSP },
118
	{ AMOVW,	C_SEXT,	C_NONE,	C_FSR,		40, 4, REGSB },
119
	{ AMOVW,	C_FSR,	C_NONE,	C_SOREG,	40, 4, 0 },
120
	{ AMOVW,	C_FSR,	C_NONE,	C_SAUTO,	40, 4, REGSP },
121
	{ AMOVW,	C_FSR,	C_NONE,	C_SEXT,		40, 4, REGSB },
122
	{ AMOVD,	C_FQ,	C_NONE,	C_SOREG,	40, 4, 0 },
123
	{ AMOVD,	C_FQ,	C_NONE,	C_SAUTO,	40, 4, REGSP },
124
	{ AMOVD,	C_FQ,	C_NONE,	C_SEXT,		40, 4, REGSB },
125
 
126
	{ AFMOVF,	C_SOREG,C_NONE,	C_FREG,		41, 4, 0 },
127
	{ AFMOVF,	C_SAUTO,C_NONE,	C_FREG,		41, 4, REGSP },
128
	{ AFMOVF,	C_SEXT,	C_NONE,	C_FREG,		41, 4, REGSB },
129
	{ AMOVW,	C_SOREG,C_NONE,	C_FREG,		41, 4, 0 },
130
	{ AMOVW,	C_SAUTO,C_NONE,	C_FREG,		41, 4, REGSP },
131
	{ AMOVW,	C_SEXT,	C_NONE,	C_FREG,		41, 4, REGSB },
132
	{ AMOVD,	C_SOREG,C_NONE,	C_FREG,		41, 4, 0 },
133
	{ AMOVD,	C_SAUTO,C_NONE,	C_FREG,		41, 4, REGSP },
134
	{ AFMOVD,	C_ESAUTO,C_NONE,C_FREG,		41, 4, REGSP },
135
	{ AMOVD,	C_SEXT,	C_NONE,	C_FREG,		41, 4, REGSB },
136
	{ AFMOVD,	C_ESEXT,C_NONE,	C_FREG,		41, 4, REGSB },
137
 
138
	{ AFMOVD,	C_SOREG,C_NONE,	C_FREG,		42, 8, 0 },
139
	{ AFMOVD,	C_SAUTO,C_NONE,	C_FREG,		42, 8, REGSP },
140
	{ AFMOVD,	C_SEXT,	C_NONE,	C_FREG,		42, 8, REGSB },
141
 
142
	{ AFMOVF,	C_FREG,	C_NONE,	C_SOREG,	43, 4, 0 },
143
	{ AFMOVF,	C_FREG,	C_NONE,	C_SAUTO,	43, 4, REGSP },
144
	{ AFMOVF,	C_FREG,	C_NONE,	C_SEXT,		43, 4, REGSB },
145
	{ AMOVW,	C_FREG,	C_NONE,	C_SOREG,	43, 4, 0 },
146
	{ AMOVW,	C_FREG,	C_NONE,	C_SAUTO,	43, 4, REGSP },
147
	{ AMOVW,	C_FREG,	C_NONE,	C_SEXT,		43, 4, REGSB },
148
	{ AMOVD,	C_FREG,	C_NONE,	C_SOREG,	43, 4, 0 },
149
	{ AMOVD,	C_FREG,	C_NONE,	C_SAUTO,	43, 4, REGSP },
150
	{ AFMOVD,	C_FREG,	C_NONE,	C_ESAUTO,	43, 4, REGSP },
151
	{ AMOVD,	C_FREG,	C_NONE,	C_SEXT,		43, 4, REGSB },
152
	{ AFMOVD,	C_FREG,	C_NONE,	C_ESEXT,	43, 4, REGSB },
153
 
154
	{ AFMOVD,	C_FREG,	C_NONE,	C_SOREG,	44, 8, 0 },
155
	{ AFMOVD,	C_FREG,	C_NONE,	C_SAUTO,	44, 8, REGSP },
156
	{ AFMOVD,	C_FREG,	C_NONE,	C_SEXT,		44, 8, REGSB },
157
 
158
	{ AFMOVF,	C_LOREG,C_NONE,	C_FREG,		45,12, 0 },
159
	{ AFMOVF,	C_LAUTO,C_NONE,	C_FREG,		45,12, REGSP },
160
	{ AFMOVF,	C_LEXT,	C_NONE,	C_FREG,		45,12, REGSB },
161
 
162
	{ AFMOVD,	C_LOREG,C_NONE,	C_FREG,		46,16, 0 },
163
	{ AFMOVD,	C_LAUTO,C_NONE,	C_FREG,		46,16, REGSP },
164
	{ AFMOVD,	C_LEXT,	C_NONE,	C_FREG,		46,16, REGSB },
165
 
166
	{ AFMOVF,	C_FREG,	C_NONE,	C_LOREG,	47,12, 0 },
167
	{ AFMOVF,	C_FREG,	C_NONE,	C_LAUTO,	47,12, REGSP },
168
	{ AFMOVF,	C_FREG,	C_NONE,	C_LEXT,		47,12, REGSB },
169
 
170
	{ AFMOVD,	C_FREG,	C_NONE,	C_LOREG,	48,16, 0 },
171
	{ AFMOVD,	C_FREG,	C_NONE,	C_LAUTO,	48,16, REGSP },
172
	{ AFMOVD,	C_FREG,	C_NONE,	C_LEXT,		48,16, REGSB },
173
 
174
	{ AFMOVD,	C_FREG,	C_NONE,	C_FREG,		49, 8, 0 },
175
	{ AFCMPD,	C_FREG,	C_NONE,	C_FREG,		50, 4, 0 },
176
 
177
	{ AFABSF,	C_FREG,	C_NONE,	C_FREG,		57, 4, 0 },
178
	{ AFMOVF,	C_FREG,	C_NONE,	C_FREG,		57, 4, 0 },
179
	{ AFADDD,	C_FREG,	C_NONE,	C_FREG,		21, 4, 0 },
180
	{ AFADDD,	C_FREG,	C_REG,	C_FREG,		21, 4, 0 },
181
 
182
	{ AWORD,	C_LCON,	C_NONE,	C_NONE,		51, 4, 0 },
183
 
184
	{ ADIV,		C_REG,	C_NONE,	C_REG,		52,12, 0 },
185
	{ ADIV,		C_REG,	C_REG,	C_REG,		52,12, 0 },
186
 
187
	{ ADIVL,	C_REG,	C_NONE,	C_REG,		53, 8, 0 },
188
	{ ADIVL,	C_REG,	C_REG,	C_REG,		53, 8, 0 },
189
 
190
	{ AMOD,		C_REG,	C_NONE,	C_REG,		54,20, 0 },
191
	{ AMOD,		C_REG,	C_REG,	C_REG,		54,20, 0 },
192
 
193
	{ AMODL,	C_REG,	C_NONE,	C_REG,		55,16, 0 },
194
	{ AMODL,	C_REG,	C_REG,	C_REG,		55,16, 0 },
195
 
196
	{ ABE,		C_NONE,	C_NONE,	C_SBRA,		56, 4, 0 },
197
 
198
	{ AXXX,		C_NONE,	C_NONE,	C_NONE,		 0, 4, 0 },
199
};