abc_instructions.c 33.9 KB
Newer Older
Camil Staps's avatar
Camil Staps committed
1 2 3 4 5
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "abc_instructions.h"
Camil Staps's avatar
Camil Staps committed
6
#include "util.h"
Camil Staps's avatar
Camil Staps committed
7

8 9
char *instruction_name(BC_WORD i) {
	switch (i) {
10 11 12
#define _INSTRUCTION_NAMES
#include "abc_instructions.h"
#undef _INSTRUCTION_NAMES
13

14 15 16 17 18
#ifdef INTERPRETER
		case CMAX:
			return "eval_to_hnf_return";
			break;
#endif
Camil Staps's avatar
Camil Staps committed
19
		default:
Camil Staps's avatar
Camil Staps committed
20
			EPRINTF("Unknown instruction %d\n",(int)i);
Camil Staps's avatar
Camil Staps committed
21 22 23 24
			return "";
	}
}

25
const char *instruction_type (BC_WORD i) {
Camil Staps's avatar
Camil Staps committed
26
	switch (i){
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
		case CabsR:                  return "";
		case CacosR:                 return "";
		case CaddI:                  return "";
		case CaddIo:                 return "";
		case CaddLU:                 return "";
		case CaddR:                  return "";
		case Cadd_empty_node2:       return "l";
		case Cadd_empty_node3:       return "l";
		case Cadd_empty_node4:       return "l";
		case Cadd_empty_node5:       return "l";
		case Cadd_empty_node6:       return "l";
		case Cadd_empty_node7:       return "l";
		case Cadd_empty_node8:       return "l";
		case Cadd_empty_node9:       return "l";
		case Cadd_empty_node10:      return "l";
		case Cadd_empty_node11:      return "l";
		case Cadd_empty_node12:      return "l";
		case Cadd_empty_node13:      return "l";
		case Cadd_empty_node14:      return "l";
		case Cadd_empty_node15:      return "l";
		case Cadd_empty_node16:      return "l";
		case Cadd_empty_node17:      return "l";
		case Cadd_empty_node18:      return "l";
		case Cadd_empty_node19:      return "l";
		case Cadd_empty_node20:      return "l";
		case Cadd_empty_node21:      return "l";
		case Cadd_empty_node22:      return "l";
		case Cadd_empty_node23:      return "l";
		case Cadd_empty_node24:      return "l";
		case Cadd_empty_node25:      return "l";
		case Cadd_empty_node26:      return "l";
		case Cadd_empty_node27:      return "l";
		case Cadd_empty_node28:      return "l";
		case Cadd_empty_node29:      return "l";
		case Cadd_empty_node30:      return "l";
		case Cadd_empty_node31:      return "l";
		case Cadd_empty_node32:      return "l";
		case CandI:                  return "";
		case CasinR:                 return "";
		case CatanR:                 return "";
		case Cbuild:                 return "nl";
		case Cbuild0:                return "l";
		case Cbuild1:                return "l";
		case Cbuild2:                return "l";
		case Cbuild3:                return "l";
		case Cbuild4:                return "l";
		case CbuildAC:               return "S";
		case CbuildBFALSE:           return "";
		case CbuildBTRUE:            return "";
		case CbuildB_b:              return "n";
		case CbuildC:                return "c";
		case CbuildC_b:              return "n";
		case CbuildF_b:              return "n";
		case CbuildI:                return "i";
		case CbuildI_b:              return "n";
		case CbuildR:                return "r";
		case CbuildR_b:              return "n";
		case Cbuildh:                return "nl";
		case Cbuildh0:               return "l";
		case Cbuildh1:               return "l";
		case Cbuildh2:               return "l";
		case Cbuildh3:               return "l";
		case Cbuildh4:               return "l";
90 91 92 93 94
		case Cbuildhr:               return "nln";
		case Cbuildhra0:             return "nl";
		case Cbuildhra1:             return "nl";
		case Cbuildhr0b:             return "nl";
		case Cbuildhr1b:             return "nl";
95 96 97
		case Cbuildhr01:             return "l";
		case Cbuildhr02:             return "l";
		case Cbuildhr03:             return "l";
Camil Staps's avatar
Camil Staps committed
98
		case Cbuildhr04:             return "l";
99 100 101 102 103 104 105 106 107 108
		case Cbuildhr10:             return "l";
		case Cbuildhr11:             return "l";
		case Cbuildhr12:             return "l";
		case Cbuildhr13:             return "l";
		case Cbuildhr20:             return "l";
		case Cbuildhr21:             return "l";
		case Cbuildhr22:             return "l";
		case Cbuildhr30:             return "l";
		case Cbuildhr31:             return "l";
		case Cbuildhr40:             return "l";
109 110
		case Cbuild_node_rtn:        return "n";
		case Cbuild_node2_rtn:       return "";
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
		case Cbuild_r:               return "nnlnn";
		case Cbuild_ra0:             return "nnl";
		case Cbuild_ra1:             return "nnln";
		case Cbuild_r0b:             return "nnl";
		case Cbuild_r1b:             return "nnln";
		case Cbuild_r01:             return "nl";
		case Cbuild_r02:             return "nl";
		case Cbuild_r03:             return "nl";
		case Cbuild_r04:             return "nl";
		case Cbuild_r10:             return "nl";
		case Cbuild_r11:             return "nnl";
		case Cbuild_r12:             return "nnl";
		case Cbuild_r13:             return "nnl";
		case Cbuild_r20:             return "nl";
		case Cbuild_r21:             return "nnl";
		case Cbuild_r30:             return "nl";
		case Cbuild_r31:             return "nnl";
		case Cbuild_r40:             return "nl";
		case Cbuild_u:               return "nln";
		case Cbuild_u01:             return "l";
		case Cbuild_u02:             return "l";
		case Cbuild_u03:             return "l";
133
		case Cbuild_u0b:             return "nl";
134 135 136
		case Cbuild_u11:             return "l";
		case Cbuild_u12:             return "l";
		case Cbuild_u13:             return "l";
Camil Staps's avatar
Camil Staps committed
137
		case Cbuild_u1b:             return "nl";
138 139
		case Cbuild_u21:             return "l";
		case Cbuild_u22:             return "l";
140
		case Cbuild_u2b:             return "nl";
141 142
		case Cbuild_u31:             return "l";
		case Cbuild_ua1:             return "nl";
143
		case CcatAC:                 return "";
Camil Staps's avatar
Camil Staps committed
144
		case Cccall:                 return "ss";
145
		case Ccentry:                return "";
146
		case CcmpAC:                 return "";
147 148
		case CcosR:                  return "";
		case Ccreate:                return "";
149
		case Ccreates:               return "n";
150 151 152 153 154 155 156 157 158 159
		case Ccreate_array:          return "";
		case Ccreate_arrayBOOL:      return "";
		case Ccreate_arrayCHAR:      return "";
		case Ccreate_arrayINT:       return "";
		case Ccreate_arrayREAL:      return "";
		case Ccreate_array_r:        return "nnl";
		case Ccreate_array_:         return "";
		case Ccreate_array_BOOL:     return "";
		case Ccreate_array_CHAR:     return "";
		case Ccreate_array_INT:      return "";
Camil Staps's avatar
Camil Staps committed
160
		case Ccreate_array_REAL:     return "";
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
		case Ccreate_array_r_:       return "nnl";
		case Ccreate_array_r_a:      return "nl";
		case Ccreate_array_r_b:      return "nl";
		case CdecI:                  return "";
		case CdivI:                  return "";
		case CdivLU:                 return "";
		case CdivR:                  return "";
		case CentierR:               return "";
		case CeqAC:                  return "";
		case CeqAC_a:                return "s";
		case CeqB:                   return "";
		case CeqB_aFALSE:            return "n";
		case CeqB_aTRUE:             return "n";
		case CeqB_bFALSE:            return "n";
		case CeqB_bTRUE:             return "n";
		case CeqC:                   return "";
		case CeqC_a:                 return "nc";
		case CeqC_b:                 return "nc";
179
		case CeqCc:                  return "c";
180 181 182 183
		case CeqD_b:                 return "l";
		case CeqI:                   return "";
		case CeqI_a:                 return "ni";
		case CeqI_b:                 return "ni";
184
		case CeqIi:                  return "i";
185 186 187
		case CeqR:                   return "";
		case CeqR_b:                 return "nr";
		case Ceq_desc:               return "nl";
188
		case Ceq_desc_b:             return "l";
189 190
		case Ceq_nulldesc:           return "nl";
		case CexpR:                  return "";
191
		case Cfill:                  return "nnl";
192
		case Cfill0:                 return "nl";
193
		case Cfill1_r0101:           return "n";
Camil Staps's avatar
Camil Staps committed
194 195 196 197 198 199 200 201 202 203
		case Cfill1_r0111:           return "nl";
		case Cfill1_r02001:          return "n";
		case Cfill1_r02010:          return "n";
		case Cfill1_r02011:          return "n";
		case Cfill1_r02101:          return "nl";
		case Cfill1_r02110:          return "nl";
		case Cfill1_r02111:          return "nl";
		case Cfill1_r11001:          return "n";
		case Cfill1_r11011:          return "n";
		case Cfill1_r11101:          return "nl";
204 205
		case Cfill1_r11111:          return "nl";
		case Cfill1_r20111:          return "nl";
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
		case Cfill1:                 return "nl";
		case Cfill2:                 return "nl";
		case Cfill3:                 return "nl";
		case Cfill4:                 return "nl";
		case Cfillh0:                return "nl";
		case Cfillh:                 return "nnl";
		case Cfillh1:                return "nl";
		case Cfillh2:                return "nl";
		case Cfill1001:              return "n";
		case Cfill1010:              return "n";
		case Cfill1011:              return "n";
		case Cfill1101:              return "nl";
		case Cfill2a001:             return "nn";
		case Cfill2a002:             return "nnn";
		case Cfill2a011:             return "nn";
		case Cfill2a012:             return "nn";
Camil Staps's avatar
Camil Staps committed
222 223 224 225
		case Cfill2ab002:            return "nnn";
		case Cfill2ab003:            return "nnnn";
		case Cfill2ab013:            return "nnnn";
		case Cfill2ab011:            return "nn";
226
		case Cfill2b001:             return "nn";
227
		case Cfill2b002:             return "nnn";
228
		case Cfill2b011:             return "nn";
229
		case Cfill2b012:             return "nnn";
230 231
		case Cfill2_r00:             return "nnn";
		case Cfill2_r01:             return "nnn";
232 233
		case Cfill2_r10:             return "nlnn";
		case Cfill2_r11:             return "nlnn";
234 235 236 237 238 239
		case Cfill3_r:               return "nlnnn";
		case Cfill3_r01a:            return "nln";
		case Cfill3_r01b:            return "nln";
		case Cfill3a10:              return "nl";
		case Cfill3a11:              return "nln";
		case Cfill3a12:              return "nlnn";
240
		case Cfill3aaab13:           return "nlnnn";
241 242 243 244 245 246 247 248
		case Cfillh3:                return "nl";
		case Cfillh4:                return "nl";
		case CfillB_b:               return "nn";
		case CfillC_b:               return "nn";
		case CfillF_b:               return "nn";
		case CfillI:                 return "in";
		case CfillI_b:               return "nn";
		case CfillR_b:               return "nn";
249
		case Cfillcaf:               return "Cnn";
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
		case Cfill_a:                return "nn";
		case Cfill_r:                return "nnnlnn";
		case Cfill_ra0:              return "nnnl";
		case Cfill_ra1:              return "nnnln";
		case Cfill_r0b:              return "nnln";
		case Cfill_r1b:              return "nnnln";
		case Cfill_r01:              return "nnl";
		case Cfill_r02:              return "nnl";
		case Cfill_r03:              return "nnl";
		case Cfill_r10:              return "nnl";
		case Cfill_r11:              return "nnnl";
		case Cfill_r12:              return "nnnl";
		case Cfill_r13:              return "nnnl";
		case Cfill_r20:              return "nnl";
		case Cfill_r21:              return "nnnl";
		case Cfill_r22:              return "nnnl";
		case Cfill_r30:              return "nnl";
		case Cfill_r31:              return "nnnl";
		case Cfill_r40:              return "nnl";
269
		case Cfill_u:                return "nnln";
270
		case Cget_desc_arity_offset: return "";
271
		case Cget_node_arity:        return "n";
272
		case Cget_thunk_desc:        return "";
273 274 275 276 277 278 279 280 281
		case CgtI:                   return "";
		case Chalt:                  return "";
		case CincI:                  return "";
		case Cinstruction:           return "i";
		case Cis_record:             return "n";
		case Cjmp:                   return "l";
		case Cjmp_eval:              return "";
		case Cjmp_eval_upd:          return "";
		case Cjmp_false:             return "l";
282 283 284 285 286
		case Cjmp_i:                 return "n";
		case Cjmp_i0:                return "";
		case Cjmp_i1:                return "";
		case Cjmp_i2:                return "";
		case Cjmp_i3:                return "";
287 288 289 290 291 292 293
		case Cjmp_true:              return "l";
		case Cjsr:                   return "l";
		case Cjsr_eval:              return "n";
		case Cjsr_eval0:             return "";
		case Cjsr_eval1:             return "";
		case Cjsr_eval2:             return "";
		case Cjsr_eval3:             return "";
294 295 296 297 298
		case Cjsr_i:                 return "n";
		case Cjsr_i0:                return "";
		case Cjsr_i1:                return "";
		case Cjsr_i2:                return "";
		case Cjsr_i3:                return "";
299 300
		case ClnR:                   return "";
		case Cload_i:                return "i";
301
		case Cload_module_name:      return "";
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326
		case Cload_si16:             return "i";
		case Cload_si32:             return "i";
		case Cload_ui8:              return "i";
		case Clog10R:                return "";
		case CltC:                   return "";
		case CltI:                   return "";
		case CltU:                   return "";
		case CltR:                   return "";
		case CmulI:                  return "";
		case CmulIo:                 return "";
		case CmulUUL:                return "";
		case CmulR:                  return "";
		case CnegI:                  return "";
		case CnegR:                  return "";
		case CnotB:                  return "";
		case CnotI:                  return "";
		case CorI:                   return "";
		case Cpop_a:                 return "N";
		case Cpop_b:                 return "N";
		case CpowR:                  return "";
		case Cprint:                 return "s";
		case CprintD:                return "";
		case Cprint_char:            return "";
		case Cprint_int:             return "";
		case Cprint_real:            return "";
327
		case Cprint_string:          return "";
328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
		case Cprint_symbol_sc:       return "n";
		case CpushA_a:               return "n";
		case CpushBFALSE:            return "";
		case CpushBTRUE:             return "";
		case CpushB_a:               return "n";
		case CpushB0_pop_a1:         return "";
		case CpushC:                 return "c";
		case CpushC_a:               return "n";
		case CpushC0_pop_a1:         return "";
		case CpushD:                 return "l";
		case CpushD_a:               return "n";
		case CpushF_a:               return "n";
		case CpushI:                 return "i";
		case CpushI_a:               return "n";
		case CpushI0_pop_a1:         return "";
		case CpushL:                 return "";
		case CpushLc:                return "";
		case CpushR:                 return "r";
		case CpushR_a:               return "n";
347 348 349 350 351
		case Cpushcaf:               return "nnC";
		case Cpushcaf10:             return "C";
		case Cpushcaf11:             return "C";
		case Cpushcaf20:             return "C";
		case Cpushcaf31:             return "C";
352 353 354 355 356 357 358
		case Cpush_a:                return "n";
		case Cpush_a_r_args:         return "";
		case Cpush_arg:              return "nn";
		case Cpush_arg1:             return "n";
		case Cpush_arg2:             return "n";
		case Cpush_arg2l:            return "n";
		case Cpush_arg3:             return "n";
359
		case Cpush_arg4:             return "n";
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393
		case Cpush_arg_b:            return "n";
		case Cpush_args1:            return "n";
		case Cpush_args2:            return "n";
		case Cpush_args3:            return "n";
		case Cpush_args4:            return "n";
		case Cpush_args:             return "nn";
		case Cpush_args_u:           return "nnn";
		case Cpush_array:            return "n";
		case Cpush_arraysize:        return "";
		case Cpush_a_b:              return "n";
		case Cpush_b:                return "n";
		case Cpush_finalizers:       return "";
		case Cpush_node0:            return "l";
		case Cpush_node1:            return "l";
		case Cpush_node2:            return "l";
		case Cpush_node3:            return "l";
		case Cpush_node4:            return "l";
		case Cpush_node:             return "nl";
		case Cpush_node_:            return "n";
		case Cpush_node_u:           return "nln";
		case Cpush_node_ua1:         return "nl";
		case Cpush_node_u01:         return "l";
		case Cpush_node_u02:         return "l";
		case Cpush_node_u03:         return "l";
		case Cpush_node_u0b:         return "nl";
		case Cpush_node_u11:         return "l";
		case Cpush_node_u12:         return "l";
		case Cpush_node_u13:         return "l";
		case Cpush_node_u1b:         return "nl";
		case Cpush_node_u21:         return "l";
		case Cpush_node_u22:         return "l";
		case Cpush_node_u31:         return "l";
		case Cpush_r_arg_D:          return "";
		case Cpush_r_arg_t:          return "";
394
		case Cpush_r_args:           return "nnn";
395
		case Cpush_r_argsa0:         return "nn";
396
		case Cpush_r_argsa1:         return "nn";
397 398 399
		case Cpush_r_args01:         return "n";
		case Cpush_r_args02:         return "n";
		case Cpush_r_args03:         return "n";
400 401
		case Cpush_r_args04:         return "n";
		case Cpush_r_args0b:         return "nn";
402 403 404 405
		case Cpush_r_args10:         return "n";
		case Cpush_r_args11:         return "n";
		case Cpush_r_args12:         return "n";
		case Cpush_r_args13:         return "n";
406
		case Cpush_r_args1b:         return "nn";
407 408 409 410 411 412 413
		case Cpush_r_args20:         return "n";
		case Cpush_r_args21:         return "n";
		case Cpush_r_args22:         return "n";
		case Cpush_r_args30:         return "n";
		case Cpush_r_args31:         return "n";
		case Cpush_r_args40:         return "n";
		case Cpush_r_args_a:         return "nnnn";
414
		case Cpush_r_args_aa1:       return "nN";
415 416 417 418
		case Cpush_r_args_a1:        return "n";
		case Cpush_r_args_a2l:       return "n";
		case Cpush_r_args_a3:        return "n";
		case Cpush_r_args_a4:        return "n";
419
		case Cpush_r_args_b:         return "nNn";
420 421 422
		case Cpush_r_args_b0b11:     return "n";
		case Cpush_r_args_b0221:     return "n";
		case Cpush_r_args_b1111:     return "n";
423
		case Cpush_r_args_b1:        return "nN";
424 425 426
		case Cpush_r_args_b2l1:      return "n";
		case Cpush_r_args_b31:       return "n";
		case Cpush_r_args_b41:       return "n";
427
		case Cpush_r_args_b2:        return "nN";
428 429
		case Cpush_r_args_b1l2:      return "n";
		case Cpush_r_args_b22:       return "n";
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477
		case Cpush_t_r_a:            return "n";
		case Cpush_t_r_args:         return "";
		case CremI:                  return "";
		case Creplace:               return "";
		case CreplaceBOOL:           return "";
		case CreplaceCHAR:           return "";
		case CreplaceINT:            return "";
		case CreplaceREAL:           return "";
		case Creplace_r:             return "nn";
		case Crepl_args1:            return "";
		case Crepl_args2:            return "";
		case Crepl_args3:            return "";
		case Crepl_args4:            return "";
		case Crepl_args:             return "n";
		case Crepl_args_b:           return "";
		case Crepl_r_args:           return "nn";
		case Crepl_r_args01:         return "";
		case Crepl_r_args02:         return "";
		case Crepl_r_args03:         return "";
		case Crepl_r_args04:         return "";
		case Crepl_r_args0b:         return "n";
		case Crepl_r_args10:         return "";
		case Crepl_r_args11:         return "";
		case Crepl_r_args12:         return "";
		case Crepl_r_args13:         return "";
		case Crepl_r_args14:         return "";
		case Crepl_r_args1b:         return "n";
		case Crepl_r_args20:         return "";
		case Crepl_r_args21:         return "";
		case Crepl_r_args22:         return "";
		case Crepl_r_args23:         return "";
		case Crepl_r_args24:         return "";
		case Crepl_r_args2b:         return "n";
		case Crepl_r_args30:         return "";
		case Crepl_r_args31:         return "";
		case Crepl_r_args32:         return "";
		case Crepl_r_args33:         return "";
		case Crepl_r_args34:         return "";
		case Crepl_r_args3b:         return "n";
		case Crepl_r_args40:         return "";
		case Crepl_r_argsa0:         return "n";
		case Crepl_r_argsa1:         return "n";
		case Crepl_r_args_a:         return "nnn";
		case Crepl_r_args_aab11:     return "";
		case Crepl_r_args_a2021:     return "";
		case Crepl_r_args_a21:       return "";
		case Crepl_r_args_a31:       return "";
		case Crepl_r_args_a41:       return "";
478
		case Crepl_r_args_aa1:       return "N";
479 480 481 482 483
		case Cselect:                return "";
		case CselectBOOL:            return "";
		case CselectCHAR:            return "";
		case CselectINT:             return "";
		case CselectREAL:            return "";
484
		case Cselect_r:              return "nn";
485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506
		case Cselect_r01:            return "";
		case Cselect_r02:            return "";
		case Cselect_r03:            return "";
		case Cselect_r04:            return "";
		case Cselect_r0b:            return "n";
		case Cselect_r10:            return "";
		case Cselect_r11:            return "";
		case Cselect_r12:            return "";
		case Cselect_r13:            return "";
		case Cselect_r14:            return "";
		case Cselect_r1b:            return "n";
		case Cselect_r20:            return "";
		case Cselect_r21:            return "";
		case Cselect_r22:            return "";
		case Cselect_r23:            return "";
		case Cselect_r24:            return "";
		case Cselect_r2b:            return "n";
		case Cset_finalizers:        return "";
		case CshiftlI:               return "";
		case CshiftrI:               return "";
		case CshiftrU:               return "";
		case CsinR:                  return "";
507
		case CsliceAC:               return "";
508 509 510 511 512 513 514
		case CsubI:                  return "";
		case CsubIo:                 return "";
		case CsubLU:                 return "";
		case CsubR:                  return "";
		case CsqrtR:                 return "";
		case Crtn:                   return "";
		case CtanR:                  return "";
515
		case Ctestcaf:               return "C";
516
		case Cupdate:                return "";
517
		case CupdateAC:              return "";
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550
		case CupdateBOOL:            return "";
		case CupdateCHAR:            return "";
		case CupdateINT:             return "";
		case CupdateREAL:            return "";
		case Cupdatepop_a:           return "nn";
		case Cupdatepop_b:           return "nn";
		case Cupdate_a:              return "nn";
		case Cupdate_r:              return "nn";
		case Cupdate_r01:            return "";
		case Cupdate_r02:            return "";
		case Cupdate_r03:            return "";
		case Cupdate_r04:            return "";
		case Cupdate_r0b:            return "n";
		case Cupdate_r10:            return "";
		case Cupdate_r11:            return "";
		case Cupdate_r12:            return "";
		case Cupdate_r13:            return "";
		case Cupdate_r14:            return "";
		case Cupdate_r1b:            return "n";
		case Cupdate_r20:            return "";
		case Cupdate_r21:            return "";
		case Cupdate_r22:            return "";
		case Cupdate_r23:            return "";
		case Cupdate_r24:            return "";
		case Cupdate_r2b:            return "n";
		case Cupdate_r30:            return "";
		case Cupdate_r31:            return "";
		case Cupdate_r32:            return "";
		case Cupdate_r33:            return "";
		case Cupdate_r34:            return "";
		case Cupdate_r3b:            return "n";
		case Cupdate_b:              return "nn";
		case CxorI:                  return "";
551
		case CBtoAC:                 return "";
552
		case CCtoAC:                 return "";
553
		case CItoAC:                 return "";
554 555
		case CItoC:                  return "";
		case CItoR:                  return "";
556
		case CRtoAC:                 return "";
557 558 559 560 561 562
		case CRtoI:                  return "";
		case Cswap_a1:               return "";
		case Cswap_a2:               return "";
		case Cswap_a3:               return "";
		case Cswap_a:                return "n";
		case Cjmp_ap1:               return "";
563
		case Cjsr_ap1:               return "";
564
		case Cjmp_ap2:               return "";
565
		case Cjsr_ap2:               return "";
566
		case Cjmp_ap3:               return "";
567
		case Cjsr_ap3:               return "";
568
		case Cjmp_ap4:               return "";
569
		case Cjsr_ap4:               return "";
570
		case Cjmp_ap5:               return "";
571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623
		case Cjsr_ap5:               return "";
		case Cjmp_ap6:               return "";
		case Cjsr_ap6:               return "";
		case Cjmp_ap7:               return "";
		case Cjsr_ap7:               return "";
		case Cjmp_ap8:               return "";
		case Cjsr_ap8:               return "";
		case Cjmp_ap9:               return "";
		case Cjsr_ap9:               return "";
		case Cjmp_ap10:              return "";
		case Cjsr_ap10:              return "";
		case Cjmp_ap11:              return "";
		case Cjsr_ap11:              return "";
		case Cjmp_ap12:              return "";
		case Cjsr_ap12:              return "";
		case Cjmp_ap13:              return "";
		case Cjsr_ap13:              return "";
		case Cjmp_ap14:              return "";
		case Cjsr_ap14:              return "";
		case Cjmp_ap15:              return "";
		case Cjsr_ap15:              return "";
		case Cjmp_ap16:              return "";
		case Cjsr_ap16:              return "";
		case Cjmp_ap17:              return "";
		case Cjsr_ap17:              return "";
		case Cjmp_ap18:              return "";
		case Cjsr_ap18:              return "";
		case Cjmp_ap19:              return "";
		case Cjmp_ap20:              return "";
		case Cjsr_ap20:              return "";
		case Cjmp_ap21:              return "";
		case Cjsr_ap21:              return "";
		case Cjmp_ap22:              return "";
		case Cjsr_ap22:              return "";
		case Cjmp_ap23:              return "";
		case Cjsr_ap23:              return "";
		case Cjmp_ap24:              return "";
		case Cjsr_ap24:              return "";
		case Cjmp_ap25:              return "";
		case Cjsr_ap25:              return "";
		case Cjmp_ap26:              return "";
		case Cjsr_ap26:              return "";
		case Cjmp_ap27:              return "";
		case Cjsr_ap27:              return "";
		case Cjmp_ap28:              return "";
		case Cjsr_ap28:              return "";
		case Cjmp_ap29:              return "";
		case Cjmp_ap30:              return "";
		case Cjsr_ap30:              return "";
		case Cjmp_ap31:              return "";
		case Cjsr_ap31:              return "";
		case Cjmp_ap32:              return "";
		case Cjsr_ap32:              return "";
624
		case Cadd_arg:               return "";
625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691
		case Cadd_arg0:              return "";
		case Cadd_arg1:              return "";
		case Cadd_arg2:              return "";
		case Cadd_arg3:              return "";
		case Cadd_arg4:              return "";
		case Cadd_arg5:              return "";
		case Cadd_arg6:              return "";
		case Cadd_arg7:              return "";
		case Cadd_arg8:              return "";
		case Cadd_arg9:              return "";
		case Cadd_arg10:             return "";
		case Cadd_arg11:             return "";
		case Cadd_arg12:             return "";
		case Cadd_arg13:             return "";
		case Cadd_arg14:             return "";
		case Cadd_arg15:             return "";
		case Cadd_arg16:             return "";
		case Cadd_arg17:             return "";
		case Cadd_arg18:             return "";
		case Cadd_arg19:             return "";
		case Cadd_arg20:             return "";
		case Cadd_arg21:             return "";
		case Cadd_arg22:             return "";
		case Cadd_arg23:             return "";
		case Cadd_arg24:             return "";
		case Cadd_arg25:             return "";
		case Cadd_arg26:             return "";
		case Cadd_arg27:             return "";
		case Cadd_arg28:             return "";
		case Cadd_arg29:             return "";
		case Cadd_arg30:             return "";
		case Cadd_arg31:             return "";
		case Cadd_arg32:             return "";
		case Ceval_upd0:             return "";
		case Ceval_upd1:             return "";
		case Ceval_upd2:             return "";
		case Ceval_upd3:             return "";
		case Ceval_upd4:             return "";
		case Ceval_upd5:             return "";
		case Ceval_upd6:             return "";
		case Ceval_upd7:             return "";
		case Ceval_upd8:             return "";
		case Ceval_upd9:             return "";
		case Ceval_upd10:            return "";
		case Ceval_upd11:            return "";
		case Ceval_upd12:            return "";
		case Ceval_upd13:            return "";
		case Ceval_upd14:            return "";
		case Ceval_upd15:            return "";
		case Ceval_upd16:            return "";
		case Ceval_upd17:            return "";
		case Ceval_upd18:            return "";
		case Ceval_upd19:            return "";
		case Ceval_upd20:            return "";
		case Ceval_upd21:            return "";
		case Ceval_upd22:            return "";
		case Ceval_upd23:            return "";
		case Ceval_upd24:            return "";
		case Ceval_upd25:            return "";
		case Ceval_upd26:            return "";
		case Ceval_upd27:            return "";
		case Ceval_upd28:            return "";
		case Ceval_upd29:            return "";
		case Ceval_upd30:            return "";
		case Ceval_upd31:            return "";
		case Ceval_upd32:            return "";
		case Cfill_a01_pop_rtn:      return "";
Camil Staps's avatar
Camil Staps committed
692

693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724
		case CcloseF:                return "";
		case CendF:                  return "";
		case CendSF:                 return "";
		case CerrorF:                return "";
		case CflushF:                return "";
		case CopenF:                 return "";
		case CopenSF:                return "";
		case CpositionF:             return "";
		case CpositionSF:            return "";
		case CreadFC:                return "";
		case CreadFI:                return "";
		case CreadFR:                return "";
		case CreadFS:                return "";
		case CreadFString:           return "";
		case CreadLineF:             return "";
		case CreadLineSF:            return "";
		case CreadSFC:               return "";
		case CreadSFI:               return "";
		case CreadSFR:               return "";
		case CreadSFS:               return "";
		case CreopenF:               return "";
		case CseekF:                 return "";
		case CseekSF:                return "";
		case CshareF:                return "";
		case CstderrF:               return "";
		case CstdioF:                return "";
		case CwriteFC:               return "";
		case CwriteFI:               return "";
		case CwriteFR:               return "";
		case CwriteFS:               return "";
		case CwriteFString:          return "";

725
		case CaddIi:                 return "i";
726 727 728 729 730 731 732 733 734
		case CandIi:                 return "i";
		case CandIio:                return "ni";
		case Cbuildh0_dup_a:         return "ln";
		case Cbuildh0_dup2_a:        return "ln";
		case Cbuildh0_dup3_a:        return "ln";
		case Cbuildh0_put_a:         return "ln";
		case Cbuildh0_put_a_jsr:     return "lnl";
		case Cbuildho2:              return "nnl";
		case Cbuildo1:               return "nl";
735
		case Cbuildo2:               return "nnl";
736 737 738 739 740 741 742 743 744 745
		case Cdup_a:                 return "n";
		case Cdup2_a:                return "n";
		case Cdup3_a:                return "n";
		case CneI:                   return "";
		case Cexchange_a:            return "nn";
		case CgeC:                   return "";
		case Cjmp_b_false:           return "nl";
		case Cjmp_eqACio:            return "nsl";
		case Cjmp_eqC_b:             return "ncl";
		case Cjmp_eqC_b2:            return "nclcl";
746
		case Cjmp_eqCc:              return "cl";
747 748 749 750 751
		case Cjmp_eqD_b:             return "ll";
		case Cjmp_eqD_b2:            return "llll";
		case Cjmp_eqI:               return "l";
		case Cjmp_eqI_b:             return "nil";
		case Cjmp_eqI_b2:            return "nilil";
752
		case Cjmp_eqIi:              return "il";
753 754 755 756
		case Cjmp_eq_desc:           return "nll";
		case Cjmp_geI:               return "l";
		case Cjmp_ltI:               return "l";
		case Cjmp_neC_b:             return "ncl";
757
		case Cjmp_neCc:              return "cl";
758 759
		case Cjmp_neI:               return "l";
		case Cjmp_neI_b:             return "nil";
760
		case Cjmp_neIi:              return "il";
761 762 763
		case Cjmp_ne_desc:           return "nll";
		case Cjmp_o_geI:             return "nl";
		case Cjmp_o_geI_arraysize_a: return "nnl";
764
		case CltIi:                  return "i";
765 766 767 768 769 770 771 772 773 774 775 776
		case Cswap_b1:               return "";
		case Cpop_a_jmp:             return "Nl";
		case Cpop_a_jsr:             return "Nl";
		case Cpop_a_rtn:             return "N";
		case Cpop_ab_rtn:            return "NN";
		case Cpop_b_jmp:             return "Nl";
		case Cpop_b_jsr:             return "Nl";
		case Cpop_b_pushBFALSE:      return "N";
		case Cpop_b_pushBTRUE:       return "N";
		case Cpop_b_rtn:             return "N";
		case CpushD_a_jmp_eqD_b2:    return "nllll";
		case Cpush_a_jsr:            return "nl";
777
		case Cpush_b_decI:           return "n";
778 779 780 781 782 783 784 785 786 787 788 789 790
		case Cpush_b_incI:           return "n";
		case Cpush_b_jsr:            return "nl";
		case Cpush_arraysize_a:      return "n";
		case Cpush_jsr_eval:         return "n";
		case Cpush_a2:               return "nn";
		case Cpush_ab:               return "nn";
		case Cpush_b2:               return "nn";
		case Cpush2_a:               return "n";
		case Cpush2_b:               return "n";
		case Cpush3_a:               return "n";
		case Cpush3_b:               return "n";
		case Cpush_update_a:         return "nn";
		case Cput_a:                 return "n";
791
		case Cput_a_jmp:             return "nl";
792
		case Cput_b:                 return "n";
793
		case Cput_b_jmp:             return "nl";
794
		case CselectBOOLoo:          return "nn";
795
		case CselectCHARoo:          return "nn";
796 797
		case CselectINToo:           return "nn";
		case CselectREALoo:          return "nn";
798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817
		case Cselectoo:              return "nn";
		case Cupdate2_a:             return "nn";
		case Cupdate2_b:             return "nn";
		case Cupdate2pop_a:          return "nn";
		case Cupdate2pop_b:          return "nn";
		case Cupdate3_a:             return "nn";
		case Cupdate3_b:             return "nn";
		case Cupdate3pop_a:          return "nn";
		case Cupdate3pop_b:          return "nn";
		case Cupdate4_a:             return "nn";
		case Cupdates2_a:            return "nnn";
		case Cupdates2_a_pop_a:      return "nnnN";
		case Cupdates2_b:            return "nnn";
		case Cupdates2pop_a:         return "nnn";
		case Cupdates2pop_b:         return "nnn";
		case Cupdates3_a:            return "nnnn";
		case Cupdates3_b:            return "nnnn";
		case Cupdates3pop_a:         return "nnnn";
		case Cupdates3pop_b:         return "nnnn";
		case Cupdates4_a:            return "nnnnn";
Camil Staps's avatar
Camil Staps committed
818

819 820 821 822
		case CA_data_IIIla:          return "IIIla";
		case CA_data_IIl:            return "IIl";
		case CA_data_IlI:            return "IlI";
		case CA_data_IlIla:          return "IlIla";
823
		case CA_data_lIlI:           return "lIlI";
824 825
		case CA_data_la:             return "la";
		case CA_data_a:              return "a";
Camil Staps's avatar
Camil Staps committed
826

Camil Staps's avatar
Camil Staps committed
827
		default:
Camil Staps's avatar
Camil Staps committed
828
			EPRINTF("Unknown instruction %d\n",(int)i);
829
			return "?";
Camil Staps's avatar
Camil Staps committed
830 831
	}
}