1 /**************************************************************************/ 2 /* */ 3 /* OCaml */ 4 /* */ 5 /* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ 6 /* */ 7 /* Copyright 1996 Institut National de Recherche en Informatique et */ 8 /* en Automatique. */ 9 /* */ 10 /* All rights reserved. This file is distributed under the terms of */ 11 /* the GNU Lesser General Public License version 2.1, with the */ 12 /* special exception on linking described in the file LICENSE. */ 13 /* */ 14 /**************************************************************************/ 15 16 /* The instruction set. */ 17 18 #ifndef CAML_INSTRUCT_H 19 #define CAML_INSTRUCT_H 20 21 #ifdef CAML_INTERNALS 22 23 enum instructions { 24 ACC0, ACC1, ACC2, ACC3, ACC4, ACC5, ACC6, ACC7, 25 ACC, PUSH, 26 PUSHACC0, PUSHACC1, PUSHACC2, PUSHACC3, 27 PUSHACC4, PUSHACC5, PUSHACC6, PUSHACC7, 28 PUSHACC, POP, ASSIGN, 29 ENVACC1, ENVACC2, ENVACC3, ENVACC4, ENVACC, 30 PUSHENVACC1, PUSHENVACC2, PUSHENVACC3, PUSHENVACC4, PUSHENVACC, 31 PUSH_RETADDR, APPLY, APPLY1, APPLY2, APPLY3, 32 APPTERM, APPTERM1, APPTERM2, APPTERM3, 33 RETURN, RESTART, GRAB, 34 CLOSURE, CLOSUREREC, 35 OFFSETCLOSUREM2, OFFSETCLOSURE0, OFFSETCLOSURE2, OFFSETCLOSURE, 36 PUSHOFFSETCLOSUREM2, PUSHOFFSETCLOSURE0, 37 PUSHOFFSETCLOSURE2, PUSHOFFSETCLOSURE, 38 GETGLOBAL, PUSHGETGLOBAL, GETGLOBALFIELD, PUSHGETGLOBALFIELD, SETGLOBAL, 39 ATOM0, ATOM, PUSHATOM0, PUSHATOM, 40 MAKEBLOCK, MAKEBLOCK1, MAKEBLOCK2, MAKEBLOCK3, MAKEFLOATBLOCK, 41 GETFIELD0, GETFIELD1, GETFIELD2, GETFIELD3, GETFIELD, GETFLOATFIELD, 42 SETFIELD0, SETFIELD1, SETFIELD2, SETFIELD3, SETFIELD, SETFLOATFIELD, 43 VECTLENGTH, GETVECTITEM, SETVECTITEM, 44 GETSTRINGCHAR, SETSTRINGCHAR, 45 BRANCH, BRANCHIF, BRANCHIFNOT, SWITCH, BOOLNOT, 46 PUSHTRAP, POPTRAP, RAISE, 47 CHECK_SIGNALS, 48 C_CALL1, C_CALL2, C_CALL3, C_CALL4, C_CALL5, C_CALLN, 49 CONST0, CONST1, CONST2, CONST3, CONSTINT, 50 PUSHCONST0, PUSHCONST1, PUSHCONST2, PUSHCONST3, PUSHCONSTINT, 51 NEGINT, ADDINT, SUBINT, MULINT, DIVINT, MODINT, 52 ANDINT, ORINT, XORINT, LSLINT, LSRINT, ASRINT, 53 EQ, NEQ, LTINT, LEINT, GTINT, GEINT, 54 OFFSETINT, OFFSETREF, ISINT, 55 GETMETHOD, 56 BEQ, BNEQ, BLTINT, BLEINT, BGTINT, BGEINT, 57 ULTINT, UGEINT, 58 BULTINT, BUGEINT, 59 GETPUBMET, GETDYNMET, 60 STOP, 61 EVENT, BREAK, 62 RERAISE, RAISE_NOTRACE, 63 FIRST_UNIMPLEMENTED_OP}; 64 65 #endif /* CAML_INTERNALS */ 66 67 #endif /* CAML_INSTRUCT_H */ 68