38 int n,
load, size, zero, ignoreofs, update;
41 for (update=0; update<=1; update++)
42 for (ignoreofs=0; ignoreofs<=1; ignoreofs++)
43 for (load=0; load<=1; load++)
44 for (zero=0; zero<=1; zero++)
45 for (size=0; size<4; size++) {
48 if (load && !zero && size == 3)
52 case 0: printf(
"#define LS_B\n");
break;
53 case 1: printf(
"#define LS_H\n");
break;
54 case 2: printf(
"#define LS_W\n");
break;
55 case 3: printf(
"#define LS_D\n");
break;
57 printf(
"#define LS_SIZE %i\n", 1 << size);
59 printf(
"#define LS_ZERO\n");
61 printf(
"#define LS_LOAD\n");
63 printf(
"#define LS_IGNOREOFS\n");
65 printf(
"#define LS_UPDATE\n");
67 printf(
"#define LS_GENERIC_N ppc%s_generic_",
84 printf(
"#define LS_N ppc%s_instr_",
modes[mode]);
90 if (load && size < 3) {
102 printf(
"#include \"cpu_ppc_instr_loadstore.cc\"\n");
104 printf(
"#undef LS_N\n");
105 printf(
"#undef LS_GENERIC_N\n");
107 case 0: printf(
"#undef LS_B\n");
break;
108 case 1: printf(
"#undef LS_H\n");
break;
109 case 2: printf(
"#undef LS_W\n");
break;
110 case 3: printf(
"#undef LS_D\n");
break;
112 printf(
"#undef LS_SIZE\n");
114 printf(
"#undef LS_LOAD\n");
116 printf(
"#undef LS_UPDATE\n");
118 printf(
"#undef LS_ZERO\n");
120 printf(
"#undef LS_IGNOREOFS\n");
124 printf(
"#define LS_INDEXED\n");
125 for (update=0; update<=1; update++)
126 for (load=0; load<=1; load++)
127 for (zero=0; zero<=1; zero++)
128 for (size=0; size<4; size++) {
131 if (load && !zero && size == 3)
135 case 0: printf(
"#define LS_B\n");
break;
136 case 1: printf(
"#define LS_H\n");
break;
137 case 2: printf(
"#define LS_W\n");
break;
138 case 3: printf(
"#define LS_D\n");
break;
140 printf(
"#define LS_SIZE %i\n", 1 << size);
142 printf(
"#define LS_ZERO\n");
144 printf(
"#define LS_LOAD\n");
146 printf(
"#define LS_UPDATE\n");
148 printf(
"#define LS_GENERIC_N ppc%s_generic_",
166 printf(
"#define LS_N ppc%s_instr_",
modes[mode]);
172 if (load && size < 3) {
183 printf(
"#include \"cpu_ppc_instr_loadstore.cc\"\n");
185 printf(
"#undef LS_N\n");
186 printf(
"#undef LS_GENERIC_N\n");
188 case 0: printf(
"#undef LS_B\n");
break;
189 case 1: printf(
"#undef LS_H\n");
break;
190 case 2: printf(
"#undef LS_W\n");
break;
191 case 3: printf(
"#undef LS_D\n");
break;
193 printf(
"#undef LS_SIZE\n");
195 printf(
"#undef LS_LOAD\n");
197 printf(
"#undef LS_UPDATE\n");
199 printf(
"#undef LS_ZERO\n");
202 printf(
"#undef LS_INDEXED\n");
206 printf(
"\n\nvoid (*ppc%s_loadstore[64])(struct cpu *, struct " 207 "ppc_instr_call *) = {\n",
modes[mode]);
209 for (update=0; update<=1; update++)
210 for (ignoreofs=0; ignoreofs<=1; ignoreofs++)
211 for (load=0; load<=1; load++)
212 for (zero=0; zero<=1; zero++)
213 for (size=0; size<4; size++) {
214 printf(
"\tppc%s_instr_",
modes[mode]);
216 if (load && !zero && size == 3) {
226 if (load && size < 3) {
244 printf(
"\n\nvoid (*ppc%s_loadstore_indexed[32])(struct cpu *, struct " 245 "ppc_instr_call *) = {\n",
modes[mode]);
247 for (update=0; update<=1; update++)
248 for (load=0; load<=1; load++)
249 for (zero=0; zero<=1; zero++)
250 for (size=0; size<4; size++) {
251 printf(
"\tppc%s_instr_",
modes[mode]);
253 if (load && !zero && size == 3) {
263 if (load && size < 3) {
281 printf(
"#define LS_BYTEREVERSE\n" 282 "#define LS_INDEXED\n" 284 "#define LS_SIZE 2\n" 286 "#define LS_GENERIC_N ppc%s_generic_lhbrx\n" 287 "#define LS_N ppc%s_instr_lhbrx\n" 289 "#include \"cpu_ppc_instr_loadstore.cc\"\n" 292 "#undef LS_GENERIC_N\n" 293 "#define LS_GENERIC_N ppc%s_generic_sthbrx\n" 294 "#define LS_N ppc%s_instr_sthbrx\n" 295 "#include \"cpu_ppc_instr_loadstore.cc\"\n" 297 "#undef LS_GENERIC_N\n" 301 "#define LS_SIZE 4\n" 303 "#define LS_GENERIC_N ppc%s_generic_lwbrx\n" 304 "#define LS_N ppc%s_instr_lwbrx\n" 306 "#include \"cpu_ppc_instr_loadstore.cc\"\n" 309 "#undef LS_GENERIC_N\n" 310 "#define LS_GENERIC_N ppc%s_generic_stwbrx\n" 311 "#define LS_N ppc%s_instr_stwbrx\n" 312 "#include \"cpu_ppc_instr_loadstore.cc\"\n" 314 "#undef LS_GENERIC_N\n" 318 "#undef LS_INDEXED\n" 319 "#undef LS_BYTEREVERSE\n",
324 int main(
int argc,
char *argv[])
328 printf(
"\n/* AUTOMATICALLY GENERATED! Do not edit. */\n\n");
330 for (mode = 0; mode <= 1; mode ++) {
332 printf(
"#ifndef MODE32\n");
334 printf(
"#ifdef MODE32\n");
void load(FILE *fh, unsigned char *ptr, unsigned long sz)
int main(int argc, char *argv[])