1 (* ============================================================ *)
2 (* IlasmCodes is the module which defines ilasm name ordinals. *)
3 (* Name spelling is defined by the lexical rules of ILASM. *)
4 (* Copyright (c) John Gough 1999, 2000. *)
5 (* ============================================================ *)
11 (* ============================================================ *)
44 att_interface
* = {10};
45 att_synchronized
*= {11};
52 CONST modAttr
* = att_public
+ att_sealed (* + att_abstract *);
54 (* ============================================================ *)
57 opc_error
* = 0; (* Start opcodes with *)
58 opc_add
* = 1; (* no arguments... *)
77 opc_conv_ovf_i_un
* = 23;
78 opc_conv_ovf_i1
* = 24;
79 opc_conv_ovf_i1_un
* = 25;
80 opc_conv_ovf_i2
* = 26;
81 opc_conv_ovf_i2_un
* = 27;
82 opc_conv_ovf_i4
* = 28;
83 opc_conv_ovf_i4_un
* = 29;
84 opc_conv_ovf_i8
* = 30;
85 opc_conv_ovf_i8_un
* = 31;
87 opc_conv_ovf_u_un
* = 32;
88 opc_conv_ovf_u1
* = 34;
89 opc_conv_ovf_u1_un
* = 35;
90 opc_conv_ovf_u2
* = 36;
91 opc_conv_ovf_u2_un
* = 37;
92 opc_conv_ovf_u4
* = 38;
93 opc_conv_ovf_u4_un
* = 39;
94 opc_conv_ovf_u8
* = 40;
95 opc_conv_ovf_u8_un
* = 41;
109 opc_endfinally
* = 55;
133 opc_ldelem_ref
* = 79;
159 opc_mul_ovf_un
* = 105;
165 opc_refanytype
* = 111;
174 opc_stelem_i1
* = 120;
175 opc_stelem_i2
* = 121;
176 opc_stelem_i4
* = 122;
177 opc_stelem_i8
* = 123;
178 opc_stelem_r4
* = 124;
179 opc_stelem_r8
* = 125;
180 opc_stelem_ref
* = 126;
188 opc_stind_ref
* = 134;
195 opc_sub_ovf_un
* = 141;
208 opc_ldloc
* = 225; (* oops! *)
209 opc_ldloc_s
* = 226; (* oops! *)
210 opc_ldloca
* = 227; (* oops! *)
211 opc_ldloca_s
* = 228; (* oops! *)
215 opc_ldc_i4
* = 159; (* Opcodes with i4 arg. *)
216 opc_unaligned_
* = 160;
218 opc_ldc_i8
* = 162; (* Opcodes with i8 arg. *)
219 opc_ldc_r4
* = 163; (* Opcodes with flt/dbl *)
246 opc_brfalse_s
* = 187;
251 * opc_leave_s* = 191;
258 opc_ldvirtftn
* = 198;
261 opc_ldfld
* = 200; (* Opcodes with fldNm args *)
268 opc_box
* = 206; (* Opcodes with type arg *)
269 opc_castclass
* = 207;
277 opc_refanyval
* = 215;
282 opc_ldstr
* = 219; (* Miscellaneous *)
290 (* ============================================================ *)
293 OpName
* = ARRAY 20 OF CHAR;
295 (* ============================================================ *)
297 VAR op
* : ARRAY 232 OF OpName
;
298 cd
* : ARRAY 232 OF INTEGER;
299 dl
* : ARRAY 232 OF INTEGER;
301 VAR dirStr
* : ARRAY 18 OF OpName
;
302 access
* : ARRAY 16 OF OpName
;
304 (* ============================================================ *)
307 (* ---------------------------------------------- *)
309 dirStr
[dot_error
] := ".ERROR";
310 dirStr
[dot_try
] := " .try";
311 dirStr
[dot_class
] := ".class";
312 dirStr
[dot_entrypoint
] := ".entrypoint";
313 dirStr
[dot_field
] := ".field";
314 dirStr
[dot_implements
] := " implements";
315 dirStr
[dot_interface
] := ".interface";
316 dirStr
[dot_locals
] := ".locals";
317 dirStr
[dot_line
] := ".line";
318 dirStr
[dot_method
] := ".method";
319 dirStr
[dot_source
] := ".source";
320 dirStr
[dot_super
] := " extends";
321 dirStr
[dot_throws
] := ".throws";
322 dirStr
[dot_var
] := ".var";
323 dirStr
[dot_assembly
] := ".assembly";
324 dirStr
[dot_namespace
] := ".namespace";
325 dirStr
[dot_maxstack
] := ".maxstack";
327 (* ---------------------------------------------- *)
329 access
[ 0] := "public";
330 access
[ 1] := "private";
331 access
[ 2] := "assembly";
332 access
[ 3] := "protected";
333 access
[ 4] := "value";
334 access
[ 5] := "static";
335 access
[ 6] := "final";
336 access
[ 7] := "sealed";
337 access
[ 8] := "abstract";
338 access
[ 9] := "newslot";
339 access
[10] := "interface";
340 access
[11] := "synchronized";
341 access
[12] := "extern";
342 access
[13] := "virtual";
343 access
[14] := "instance";
344 access
[15] := "volatile";
346 (* ---------------------------------------------- *)
348 op
[opc_error
] := "ERROR";
349 op
[opc_add
] := "add";
350 op
[opc_add_ovf
] := "add.ovf";
351 op
[opc_add_ovf_un
] := "add.ovf.un";
352 op
[opc_and
] := "and";
354 op
[opc_arglist
] := "arglist";
355 op
[opc_break
] := "break";
356 op
[opc_ceq
] := "ceq";
357 op
[opc_cgt
] := "cgt";
358 op
[opc_cgt_un
] := "cgt.un";
359 op
[opc_ckfinite
] := "ckfinite";
360 op
[opc_clt
] := "clt";
361 op
[opc_clt_un
] := "clt.un";
362 op
[opc_conv_i
] := "conv.i";
363 op
[opc_conv_i1
] := "conv.i1";
364 op
[opc_conv_i2
] := "conv.i2";
365 op
[opc_conv_i4
] := "conv.i4";
366 op
[opc_conv_i8
] := "conv.i8";
367 op
[opc_conv_ovf_i
] := "conv.ovf.i";
368 op
[opc_conv_ovf_i_un
] := "conv.ovf.i.un";
369 op
[opc_conv_ovf_i1
] := "conv.ovf.i1";
370 op
[opc_conv_ovf_i1_un
] := "conv.ovf.i1.un";
371 op
[opc_conv_ovf_i2
] := "conv.ovf.i2";
372 op
[opc_conv_ovf_i2_un
] := "conv.ovf.i2.un";
373 op
[opc_conv_ovf_i4
] := "conv.ovf.i4";
374 op
[opc_conv_ovf_i4_un
] := "conv.ovf.i4.un";
375 op
[opc_conv_ovf_i8
] := "conv.ovf.i8";
376 op
[opc_conv_ovf_i8_un
] := "conv.ovf.i8.un";
377 op
[opc_conv_ovf_u
] := "conv.ovf.u";
378 op
[opc_conv_ovf_u_un
] := "conv.ovf.u.un";
379 op
[opc_conv_ovf_u1
] := "conv.ovf.u1";
380 op
[opc_conv_ovf_u1_un
] := "conv.ovf.u1.un";
381 op
[opc_conv_ovf_u2
] := "conv.ovf.u2";
382 op
[opc_conv_ovf_u2_un
] := "conv.ovf.u2.un";
383 op
[opc_conv_ovf_u4
] := "conv.ovf.u4";
384 op
[opc_conv_ovf_u4_un
] := "conv.ovf.u4.un";
385 op
[opc_conv_ovf_u8
] := "conv.ovf.u8";
386 op
[opc_conv_ovf_u8_un
] := "conv.ovf.u8.un";
387 op
[opc_conv_r4
] := "conv.r4";
388 op
[opc_conv_r8
] := "conv.r8";
389 op
[opc_conv_u
] := "conv.u";
390 op
[opc_conv_u1
] := "conv.u1";
391 op
[opc_conv_u2
] := "conv.u2";
392 op
[opc_conv_u4
] := "conv.u4";
393 op
[opc_conv_u8
] := "conv.u8";
394 op
[opc_cpblk
] := "cpblk";
395 op
[opc_div
] := "div";
396 op
[opc_div_un
] := "div.un";
397 op
[opc_dup
] := "dup";
398 op
[opc_endcatch
] := "endcatch";
399 op
[opc_endfilter
] := "endfilter";
400 op
[opc_endfinally
] := "endfinally";
401 op
[opc_initblk
] := "initblk";
402 op
[opc_jmpi
] := "jmpi";
403 op
[opc_ldarg_0
] := "ldarg.0";
404 op
[opc_ldarg_1
] := "ldarg.1";
405 op
[opc_ldarg_2
] := "ldarg.2";
406 op
[opc_ldarg_3
] := "ldarg.3";
407 op
[opc_ldc_i4_0
] := "ldc.i4.0";
408 op
[opc_ldc_i4_1
] := "ldc.i4.1";
409 op
[opc_ldc_i4_2
] := "ldc.i4.2";
410 op
[opc_ldc_i4_3
] := "ldc.i4.3";
411 op
[opc_ldc_i4_4
] := "ldc.i4.4";
412 op
[opc_ldc_i4_5
] := "ldc.i4.5";
413 op
[opc_ldc_i4_6
] := "ldc.i4.6";
414 op
[opc_ldc_i4_7
] := "ldc.i4.7";
415 op
[opc_ldc_i4_8
] := "ldc.i4.8";
416 op
[opc_ldc_i4_M1
] := "ldc.i4.M1";
417 op
[opc_ldelem_i
] := "ldelem.i";
418 op
[opc_ldelem_i1
] := "ldelem.i1";
419 op
[opc_ldelem_i2
] := "ldelem.i2";
420 op
[opc_ldelem_i4
] := "ldelem.i4";
421 op
[opc_ldelem_i8
] := "ldelem.i8";
422 op
[opc_ldelem_r4
] := "ldelem.r4";
423 op
[opc_ldelem_r8
] := "ldelem.r8";
424 op
[opc_ldelem_ref
] := "ldelem.ref";
425 op
[opc_ldelem_u
] := "ldelem.u";
426 op
[opc_ldelem_u1
] := "ldelem.u1";
427 op
[opc_ldelem_u2
] := "ldelem.u2";
428 op
[opc_ldelem_u4
] := "ldelem.u4";
429 op
[opc_ldind_i
] := "ldind.i";
430 op
[opc_ldind_i1
] := "ldind.i1";
431 op
[opc_ldind_i2
] := "ldind.i2";
432 op
[opc_ldind_i4
] := "ldind.i4";
433 op
[opc_ldind_i8
] := "ldind.i8";
434 op
[opc_ldind_r4
] := "ldind.r4";
435 op
[opc_ldind_r8
] := "ldind.r8";
436 op
[opc_ldind_ref
] := "ldind.ref";
437 op
[opc_ldind_u
] := "ldind.u";
438 op
[opc_ldind_u1
] := "ldind.u1";
439 op
[opc_ldind_u2
] := "ldind.u2"; (* NOT ldind.u3! *)
440 op
[opc_ldind_u4
] := "ldind.u4";
441 op
[opc_ldlen
] := "ldlen";
442 op
[opc_ldloc_0
] := "ldloc.0";
443 op
[opc_ldloc_1
] := "ldloc.1";
444 op
[opc_ldloc_2
] := "ldloc.2";
445 op
[opc_ldloc_3
] := "ldloc.3";
446 op
[opc_ldnull
] := "ldnull";
447 op
[opc_localloc
] := "localloc";
448 op
[opc_mul
] := "mul";
449 op
[opc_mul_ovf
] := "mul.ovf";
450 op
[opc_mul_ovf_un
] := "mul.ovf.un";
451 op
[opc_neg
] := "neg";
452 op
[opc_nop
] := "nop";
453 op
[opc_not
] := "not";
455 op
[opc_pop
] := "pop";
456 op
[opc_refanytype
] := "refanytype";
457 op
[opc_rem
] := "rem";
458 op
[opc_rem_un
] := "rem.un";
459 op
[opc_ret
] := "ret";
460 op
[opc_rethrow
] := "rethrow";
461 op
[opc_shl
] := "shl";
462 op
[opc_shr
] := "shr";
463 op
[opc_shr_un
] := "shr.un";
464 op
[opc_stelem_i
] := "stelem.i";
465 op
[opc_stelem_i1
] := "stelem.i1";
466 op
[opc_stelem_i2
] := "stelem.i2";
467 op
[opc_stelem_i4
] := "stelem.i4";
468 op
[opc_stelem_i8
] := "stelem.i8";
469 op
[opc_stelem_r4
] := "stelem.r4";
470 op
[opc_stelem_r8
] := "stelem.r8";
471 op
[opc_stelem_ref
] := "stelem.ref";
472 op
[opc_stind_i
] := "stind.i";
473 op
[opc_stind_i1
] := "stind.i1";
474 op
[opc_stind_i2
] := "stind.i2";
475 op
[opc_stind_i4
] := "stind.i4";
476 op
[opc_stind_i8
] := "stind.i8";
477 op
[opc_stind_r4
] := "stind.r4";
478 op
[opc_stind_r8
] := "stind.r8";
479 op
[opc_stind_ref
] := "stind.ref";
480 op
[opc_stloc_0
] := "stloc.0";
481 op
[opc_stloc_1
] := "stloc.1";
482 op
[opc_stloc_2
] := "stloc.2";
483 op
[opc_stloc_3
] := "stloc.3";
484 op
[opc_sub
] := "sub";
485 op
[opc_sub_ovf
] := "sub.ovf";
486 op
[opc_sub_ovf_un
] := "sub.ovf.un";
487 op
[opc_tailcall
] := "tailcall";
488 op
[opc_throw
] := "throw";
489 op
[opc_volatile
] := "volatile";
490 op
[opc_xor
] := "xor";
492 op
[opc_ldarg
] := "ldarg";
493 op
[opc_ldarg_s
] := "ldarg.s";
494 op
[opc_ldarga
] := "ldarga";
495 op
[opc_ldarga_s
] := "ldarga.s";
496 op
[opc_starg
] := "starg";
497 op
[opc_starg_s
] := "starg.s";
498 op
[opc_ldloc
] := "ldloc";
499 op
[opc_ldloc_s
] := "ldloc.s";
500 op
[opc_ldloca
] := "ldloca";
501 op
[opc_ldloca_s
] := "ldloca.s";
502 op
[opc_stloc
] := "stloc";
503 op
[opc_stloc_s
] := "stloc.s";
505 op
[opc_ldc_i4
] := "ldc.i4";
506 op
[opc_unaligned_
] := "unaligned.";
507 op
[opc_ldc_i4_s
] := "ldc.i4.s";
508 op
[opc_ldc_i8
] := "ldc.i8";
509 op
[opc_ldc_r4
] := "ldc.r4";
510 op
[opc_ldc_r8
] := "ldc.r8";
512 op
[opc_beq
] := "beq";
513 op
[opc_beq_s
] := "beq.s";
514 op
[opc_bge
] := "bge";
515 op
[opc_bge_s
] := "bge.s";
516 op
[opc_bge_un
] := "bge.un";
517 op
[opc_bge_un_s
] := "bge.un.s";
518 op
[opc_bgt
] := "bgt";
519 op
[opc_bgt_s
] := "bgt.s";
520 op
[opc_bgt_un
] := "bgt.un";
521 op
[opc_bgt_un_s
] := "bgt.un.s";
522 op
[opc_ble
] := "ble";
523 op
[opc_ble_s
] := "ble.s";
524 op
[opc_ble_un
] := "ble.un";
525 op
[opc_ble_un_s
] := "ble.un.s";
526 op
[opc_blt
] := "blt";
527 op
[opc_blt_s
] := "blt.s";
528 op
[opc_blt_un
] := "blt.un";
529 op
[opc_blt_un_s
] := "blt.un.s";
530 op
[opc_bne_un
] := "bne.un";
531 op
[opc_bne_un_s
] := "bne.un.s";
533 op
[opc_br_s
] := "br.s";
534 op
[opc_brfalse
] := "brfalse";
535 op
[opc_brfalse_s
] := "brfalse.s";
536 op
[opc_brtrue
] := "brtrue";
537 op
[opc_brtrue_s
] := "brtrue.s";
538 op
[opc_leave
] := "leave";
540 * op[opc_leave_s] := "leave.s";
542 op
[opc_call
] := "call";
543 op
[opc_callvirt
] := "callvirt";
544 op
[opc_jmp
] := "jmp";
545 op
[opc_ldftn
] := "ldftn";
546 op
[opc_ldvirtftn
] := "ldvirtftn";
547 op
[opc_newobj
] := "newobj";
549 op
[opc_ldfld
] := "ldfld";
550 op
[opc_ldflda
] := "ldflda";
551 op
[opc_ldsfld
] := "ldsfld";
552 op
[opc_ldsflda
] := "ldsflda";
553 op
[opc_stfld
] := "stfld";
554 op
[opc_stsfld
] := "stsfld";
556 op
[opc_box
] := "box";
557 op
[opc_castclass
] := "castclass";
558 op
[opc_cpobj
] := "cpobj";
559 op
[opc_initobj
] := "initobj";
560 op
[opc_isinst
] := "isinst";
561 op
[opc_ldelema
] := "ldelema";
562 op
[opc_ldobj
] := "ldobj";
563 op
[opc_mkrefany
] := "mkrefany";
564 op
[opc_newarr
] := "newarr";
565 op
[opc_refanyval
] := "refanyval";
566 op
[opc_sizeof
] := "sizeof";
567 op
[opc_stobj
] := "stobj";
568 op
[opc_unbox
] := "unbox";
570 op
[opc_ldstr
] := "ldstr";
571 op
[opc_calli
] := "calli";
572 op
[opc_ldptr
] := "ldptr";
573 op
[opc_ldtoken
] := "ldtoken";
574 op
[opc_switch
] := "switch";
576 (* ---------------------------------------------- *)
583 cd
[opc_ldarg_0
] := 2;
584 cd
[opc_ldarg_1
] := 3;
585 cd
[opc_ldarg_2
] := 4;
586 cd
[opc_ldarg_3
] := 5;
587 cd
[opc_ldloc_0
] := 6;
588 cd
[opc_ldloc_1
] := 7;
589 cd
[opc_ldloc_2
] := 8;
590 cd
[opc_ldloc_3
] := 9;
591 cd
[opc_stloc_0
] := 10;
592 cd
[opc_stloc_1
] := 11;
593 cd
[opc_stloc_2
] := 12;
594 cd
[opc_stloc_3
] := 13;
596 cd
[opc_ldarg_s
] := 0EH
;
597 cd
[opc_ldarga_s
] := 0FH
;
598 cd
[opc_starg_s
] := 10H
;
599 cd
[opc_ldloc_s
] := 11H
;
600 cd
[opc_ldloca_s
] := 12H
;
601 cd
[opc_stloc_s
] := 13H
;
603 cd
[opc_ldnull
] := 14H
;
604 cd
[opc_ldc_i4_M1
] := 15H
;
605 cd
[opc_ldc_i4_0
] := 16H
;
606 cd
[opc_ldc_i4_1
] := 17H
;
607 cd
[opc_ldc_i4_2
] := 18H
;
608 cd
[opc_ldc_i4_3
] := 19H
;
609 cd
[opc_ldc_i4_4
] := 1AH
;
610 cd
[opc_ldc_i4_5
] := 1BH
;
611 cd
[opc_ldc_i4_6
] := 1CH
;
612 cd
[opc_ldc_i4_7
] := 1DH
;
613 cd
[opc_ldc_i4_8
] := 1EH
;
614 cd
[opc_ldc_i4_s
] := 1FH
;
615 cd
[opc_ldc_i4
] := 20H
;
616 cd
[opc_ldc_i8
] := 21H
;
617 cd
[opc_ldc_r4
] := 22H
;
618 cd
[opc_ldc_r8
] := 23H
;
627 cd
[opc_brfalse
] := 2CH
;
628 cd
[opc_brtrue
] := 2DH
;
634 cd
[opc_bne_un
] := 33H
;
635 cd
[opc_bge_un
] := 34H
;
636 cd
[opc_bgt_un
] := 35H
;
637 cd
[opc_ble_un
] := 36H
;
638 cd
[opc_blt_un
] := 37H
;
640 cd
[opc_ldind_i1
] := 46H
;
641 cd
[opc_ldind_u1
] := 71;
642 cd
[opc_ldind_i2
] := 72;
643 cd
[opc_ldind_u2
] := 73;
644 cd
[opc_ldind_i4
] := 74;
645 cd
[opc_ldind_u4
] := 75;
646 cd
[opc_ldind_i8
] := 76;
647 cd
[opc_ldind_i
] := 77;
648 cd
[opc_ldind_r4
] := 78;
649 cd
[opc_ldind_r8
] := 79;
650 cd
[opc_ldind_ref
] := 80;
651 cd
[opc_stind_ref
] := 81;
652 cd
[opc_stind_i1
] := 82;
653 cd
[opc_stind_i2
] := 83;
654 cd
[opc_stind_i4
] := 84;
655 cd
[opc_stind_i8
] := 85;
656 cd
[opc_stind_r4
] := 86;
657 cd
[opc_stind_r8
] := 87;
662 cd
[opc_div_un
] := 92;
664 cd
[opc_rem_un
] := 94;
670 cd
[opc_shr_un
] := 100;
673 cd
[opc_conv_i1
] := 103;
674 cd
[opc_conv_i2
] := 104;
675 cd
[opc_conv_i4
] := 105;
676 cd
[opc_conv_i8
] := 106;
677 cd
[opc_conv_r4
] := 107;
678 cd
[opc_conv_r8
] := 108;
679 cd
[opc_conv_u4
] := 109;
680 cd
[opc_conv_u8
] := 110;
682 cd
[opc_callvirt
] := 6FH
;
683 cd
[opc_cpobj
] := 70H
;
684 cd
[opc_ldobj
] := 71H
;
685 cd
[opc_ldstr
] := 72H
;
686 cd
[opc_newobj
] := 73H
;
687 cd
[opc_castclass
] := 74H
;
688 cd
[opc_isinst
] := 75H
;
690 * cd[opc_conv_r_un] := 76H;
692 cd
[opc_unbox
] := 79H
;
693 cd
[opc_throw
] := 7AH
;
694 cd
[opc_ldfld
] := 7BH
;
695 cd
[opc_ldflda
] := 7CH
;
696 cd
[opc_stfld
] := 7DH
;
697 cd
[opc_ldsfld
] := 7EH
;
698 cd
[opc_ldsflda
] := 7FH
;
699 cd
[opc_stsfld
] := 80H
;
700 cd
[opc_stobj
] := 81H
;
701 cd
[opc_conv_ovf_i1_un
] := 82H
;
702 cd
[opc_conv_ovf_i2_un
] := 83H
;
703 cd
[opc_conv_ovf_i4_un
] := 84H
;
704 cd
[opc_conv_ovf_i8_un
] := 85H
;
705 cd
[opc_conv_ovf_u1_un
] := 86H
;
706 cd
[opc_conv_ovf_u2_un
] := 87H
;
707 cd
[opc_conv_ovf_u4_un
] := 88H
;
708 cd
[opc_conv_ovf_u8_un
] := 89H
;
709 cd
[opc_conv_ovf_i_un
] := 8AH
;
710 cd
[opc_conv_ovf_u_un
] := 8BH
;
712 cd
[opc_newarr
] := 8DH
;
713 cd
[opc_ldlen
] := 8EH
;
714 cd
[opc_ldelema
] := 8FH
;
715 cd
[opc_ldelem_i1
] := 90H
;
716 cd
[opc_ldelem_u1
] := 91H
;
717 cd
[opc_ldelem_i2
] := 92H
;
718 cd
[opc_ldelem_u2
] := 93H
;
719 cd
[opc_ldelem_i4
] := 94H
;
720 cd
[opc_ldelem_u4
] := 95H
;
721 cd
[opc_ldelem_i8
] := 96H
;
722 cd
[opc_ldelem_i
] := 97H
;
723 cd
[opc_ldelem_r4
] := 98H
;
724 cd
[opc_ldelem_r8
] := 99H
;
725 cd
[opc_ldelem_ref
] := 9AH
;
727 cd
[opc_stelem_i
] := 9BH
;
728 cd
[opc_stelem_i1
] := 9CH
;
729 cd
[opc_stelem_i2
] := 9DH
;
730 cd
[opc_stelem_i4
] := 9EH
;
731 cd
[opc_stelem_i8
] := 9FH
;
732 cd
[opc_stelem_r4
] := 0A0H
;
733 cd
[opc_stelem_r8
] := 0A1H
;
734 cd
[opc_stelem_ref
] := 0A2H
;
736 cd
[opc_conv_ovf_i1
] := 0B3H
;
737 cd
[opc_conv_ovf_u1
] := 0B4H
;
738 cd
[opc_conv_ovf_i2
] := 0B5H
;
739 cd
[opc_conv_ovf_u2
] := 0B6H
;
740 cd
[opc_conv_ovf_i4
] := 0B7H
;
741 cd
[opc_conv_ovf_u4
] := 0B8H
;
742 cd
[opc_conv_ovf_i8
] := 0B9H
;
743 cd
[opc_conv_ovf_u8
] := 0BAH
;
745 cd
[opc_refanyval
] := 0C2H
;
746 cd
[opc_ckfinite
] := 0C3H
;
747 cd
[opc_mkrefany
] := 0C6H
;
749 cd
[opc_ldtoken
] := 0D0H
;
750 cd
[opc_conv_u2
] := 0D1H
;
751 cd
[opc_conv_u1
] := 0D2H
;
752 cd
[opc_conv_i
] := 0D3H
;
753 cd
[opc_conv_ovf_i
] := 0D4H
;
754 cd
[opc_conv_ovf_u
] := 0D5H
;
755 cd
[opc_add_ovf
] := 0D6H
;
756 cd
[opc_add_ovf_un
] := 0D7H
;
757 cd
[opc_mul_ovf
] := 0D8H
;
758 cd
[opc_mul_ovf_un
] := 0D9H
;
759 cd
[opc_sub_ovf
] := 0DAH
;
760 cd
[opc_sub_ovf_un
] := 0DBH
;
761 cd
[opc_endfinally
] := 0DCH
;
763 cd
[opc_leave
] := 0DEH
; (* actually leave.s *)
765 * cd[opc_leave_s] := 0DEH;
767 cd
[opc_stind_i
] := 0DFH
;
768 cd
[opc_conv_u
] := 0E0H
;
770 cd
[opc_localloc
] := 0F1H
;
771 cd
[opc_endfilter
] := 0F2H
;
772 cd
[opc_volatile
] := 0F4H
;
773 cd
[opc_tailcall
] := 0F5H
;
774 cd
[opc_cpblk
] := 0F8H
;
775 cd
[opc_initblk
] := 0F9H
;
777 cd
[opc_arglist
] := 0FE00H
;
778 cd
[opc_ceq
] := 0FE01H
;
779 cd
[opc_cgt
] := 0FE02H
;
780 cd
[opc_cgt_un
] := 0FE03H
;
781 cd
[opc_clt
] := 0FE04H
;
782 cd
[opc_clt_un
] := 0FE05H
;
783 cd
[opc_ldftn
] := 0FE06H
;
784 cd
[opc_ldvirtftn
] := 0FE07H
;
785 cd
[opc_ldarg
] := 0FE09H
;
786 cd
[opc_ldarga
] := 0FE0AH
;
787 cd
[opc_starg
] := 0FE0BH
;
788 cd
[opc_ldloc
] := 0FE0CH
;
789 cd
[opc_ldloca
] := 0FE0DH
;
790 cd
[opc_stloc
] := 0FE0EH
;
791 cd
[opc_unaligned_
] := 0FE12H
;
792 cd
[opc_initobj
] := 0FE15H
;
793 cd
[opc_rethrow
] := 0FE1AH
;
794 cd
[opc_sizeof
] := 0FE1CH
;
795 cd
[opc_refanytype
] := 0FE1DH
;
798 (* ---------------------------------------------- *)
802 dl
[opc_add_ovf
] := -1;
803 dl
[opc_add_ovf_un
] := -1;
805 dl
[opc_arglist
] := 1;
809 dl
[opc_cgt_un
] := -1;
810 dl
[opc_ckfinite
] := -1;
812 dl
[opc_clt_un
] := -1;
814 dl
[opc_conv_i1
] := 0;
815 dl
[opc_conv_i2
] := 0;
816 dl
[opc_conv_i4
] := 0;
817 dl
[opc_conv_i8
] := 0;
818 dl
[opc_conv_ovf_i
] := 0;
819 dl
[opc_conv_ovf_i_un
] := 0;
820 dl
[opc_conv_ovf_i1
] := 0;
821 dl
[opc_conv_ovf_i1_un
] := 0;
822 dl
[opc_conv_ovf_i2
] := 0;
823 dl
[opc_conv_ovf_i2_un
] := 0;
824 dl
[opc_conv_ovf_i4
] := 0;
825 dl
[opc_conv_ovf_i4_un
] := 0;
826 dl
[opc_conv_ovf_i8
] := 0;
827 dl
[opc_conv_ovf_i8_un
] := 0;
828 dl
[opc_conv_ovf_u
] := 0;
829 dl
[opc_conv_ovf_u_un
] := 0;
830 dl
[opc_conv_ovf_u1
] := 0;
831 dl
[opc_conv_ovf_u1_un
] := 0;
832 dl
[opc_conv_ovf_u2
] := 0;
833 dl
[opc_conv_ovf_u2_un
] := 0;
834 dl
[opc_conv_ovf_u4
] := 0;
835 dl
[opc_conv_ovf_u4_un
] := 0;
836 dl
[opc_conv_ovf_u8
] := 0;
837 dl
[opc_conv_ovf_u8_un
] := 0;
838 dl
[opc_conv_r4
] := 0;
839 dl
[opc_conv_r8
] := 0;
841 dl
[opc_conv_u1
] := 0;
842 dl
[opc_conv_u2
] := 0;
843 dl
[opc_conv_u4
] := 0;
844 dl
[opc_conv_u8
] := 0;
847 dl
[opc_div_un
] := -1;
849 dl
[opc_endcatch
] := 0;
850 dl
[opc_endfilter
] := -1;
851 dl
[opc_endfinally
] := 0;
852 dl
[opc_initblk
] := -3;
853 dl
[opc_ldarg_0
] := 1;
854 dl
[opc_ldarg_1
] := 1;
855 dl
[opc_ldarg_2
] := 1;
856 dl
[opc_ldarg_3
] := 1;
857 dl
[opc_ldc_i4_0
] := 1;
858 dl
[opc_ldc_i4_1
] := 1;
859 dl
[opc_ldc_i4_2
] := 1;
860 dl
[opc_ldc_i4_3
] := 1;
861 dl
[opc_ldc_i4_4
] := 1;
862 dl
[opc_ldc_i4_5
] := 1;
863 dl
[opc_ldc_i4_6
] := 1;
864 dl
[opc_ldc_i4_7
] := 1;
865 dl
[opc_ldc_i4_8
] := 1;
866 dl
[opc_ldc_i4_M1
] := 1;
867 dl
[opc_ldelem_i
] := -1;
868 dl
[opc_ldelem_i1
] := -1;
869 dl
[opc_ldelem_i2
] := -1;
870 dl
[opc_ldelem_i4
] := -1;
871 dl
[opc_ldelem_i8
] := -1;
872 dl
[opc_ldelem_r4
] := -1;
873 dl
[opc_ldelem_r8
] := -1;
874 dl
[opc_ldelem_ref
] := -1;
875 dl
[opc_ldelem_u
] := -1;
876 dl
[opc_ldelem_u1
] := -1;
877 dl
[opc_ldelem_u2
] := -1;
878 dl
[opc_ldelem_u4
] := -1;
879 dl
[opc_ldind_i
] := 0;
880 dl
[opc_ldind_i1
] := 0;
881 dl
[opc_ldind_i2
] := 0;
882 dl
[opc_ldind_i4
] := 0;
883 dl
[opc_ldind_i8
] := 0;
884 dl
[opc_ldind_r4
] := 0;
885 dl
[opc_ldind_r8
] := 0;
886 dl
[opc_ldind_ref
] := 0;
887 dl
[opc_ldind_u
] := 0;
888 dl
[opc_ldind_u1
] := 0;
889 dl
[opc_ldind_u2
] := 0;
890 dl
[opc_ldind_u4
] := 0;
892 dl
[opc_ldloc_0
] := 1;
893 dl
[opc_ldloc_1
] := 1;
894 dl
[opc_ldloc_2
] := 1;
895 dl
[opc_ldloc_3
] := 1;
897 dl
[opc_localloc
] := 0;
899 dl
[opc_mul_ovf
] := -1;
900 dl
[opc_mul_ovf_un
] := -1;
906 dl
[opc_refanytype
] := 0;
908 dl
[opc_rem_un
] := -1;
910 dl
[opc_rethrow
] := 0;
913 dl
[opc_shr_un
] := -1;
914 dl
[opc_stelem_i
] := -3;
915 dl
[opc_stelem_i1
] := -3;
916 dl
[opc_stelem_i2
] := -3;
917 dl
[opc_stelem_i4
] := -3;
918 dl
[opc_stelem_i8
] := -3;
919 dl
[opc_stelem_r4
] := -3;
920 dl
[opc_stelem_r8
] := -3;
921 dl
[opc_stelem_ref
] := -3;
922 dl
[opc_stind_i
] := -2;
923 dl
[opc_stind_i1
] := -2;
924 dl
[opc_stind_i2
] := -2;
925 dl
[opc_stind_i4
] := -2;
926 dl
[opc_stind_i8
] := -2;
927 dl
[opc_stind_r4
] := -2;
928 dl
[opc_stind_r8
] := -2;
929 dl
[opc_stind_ref
] := -2;
930 dl
[opc_stloc_0
] := -1;
931 dl
[opc_stloc_1
] := -1;
932 dl
[opc_stloc_2
] := -1;
933 dl
[opc_stloc_3
] := -1;
935 dl
[opc_sub_ovf
] := -1;
936 dl
[opc_sub_ovf_un
] := -1;
937 dl
[opc_tailcall
] := 0;
939 dl
[opc_volatile
] := 0;
943 dl
[opc_ldarg_s
] := 1;
945 dl
[opc_ldarga_s
] := 1;
947 dl
[opc_starg_s
] := -1;
949 dl
[opc_ldloc_s
] := 1;
951 dl
[opc_ldloca_s
] := 1;
953 dl
[opc_stloc_s
] := -1;
956 dl
[opc_unaligned_
] := 0;
957 dl
[opc_ldc_i4_s
] := 1;
966 dl
[opc_bge_un
] := -2;
967 dl
[opc_bge_un_s
] := -2;
970 dl
[opc_bgt_un
] := -2;
971 dl
[opc_bgt_un_s
] := -2;
974 dl
[opc_ble_un
] := -2;
975 dl
[opc_ble_un_s
] := -2;
978 dl
[opc_blt_un
] := -2;
979 dl
[opc_blt_un_s
] := -2;
980 dl
[opc_bne_un
] := -2;
981 dl
[opc_bne_un_s
] := -2;
984 dl
[opc_brfalse
] := -1;
985 dl
[opc_brfalse_s
] := -1;
986 dl
[opc_brtrue
] := -1;
987 dl
[opc_brtrue_s
] := -1;
990 * dl[opc_leave_s] := 0;
992 dl
[opc_call
] := 0; (* variable *)
993 dl
[opc_callvirt
] := 0; (* variable *)
998 dl
[opc_ldvirtftn
] := 1;
999 dl
[opc_newobj
] := 0; (* variable *)
1002 dl
[opc_ldflda
] := 0;
1003 dl
[opc_ldsfld
] := 1;
1004 dl
[opc_ldsflda
] := 1;
1005 dl
[opc_stfld
] := -2;
1006 dl
[opc_stsfld
] := -1;
1009 dl
[opc_castclass
] := 0;
1010 dl
[opc_cpobj
] := -2;
1011 dl
[opc_initobj
] := -1;
1012 dl
[opc_isinst
] := 0;
1013 dl
[opc_ldelema
] := -1;
1015 dl
[opc_mkrefany
] := 0;
1016 dl
[opc_newarr
] := 0;
1017 dl
[opc_refanyval
] := 0;
1018 dl
[opc_sizeof
] := 1;
1019 dl
[opc_stobj
] := -2;
1023 dl
[opc_calli
] := 0; (* variable *)
1025 dl
[opc_ldtoken
] := 1;
1026 dl
[opc_switch
] := -1;
1029 (* ============================================================ *)