/* bytes.h                             Copyright (C) Codemist 1993-2002 */

/*
 * This code may be used and modified, and redistributed in binary
 * or source form, subject to the "CCL Public License", which should
 * accompany it. This license is a variant on the BSD license, and thus
 * permits use of code derived from this in either open and commercial
 * projects: but it does require that updates to this code be made
 * available back to the originators of the package.
 * Before merging other code in with this or linking this code
 * with other packages or libraries please check that the license terms
 * of the other material are compatible with those of this.
 */

/* Signature: 314b22cb 08-Apr-2002 */


/*
 *   Bytecode interpreter support.
 */

#ifndef header_bytes_h
#define header_bytes_h 1

#define JUMP_BACK               0x01 /* select direction of jump  */
#define JUMP_LONG               0x02 /* select 16 vs 8 bit offset */

#define OP_LOADLOC              0x00
#define OP_LOADLOC0             0x01
#define OP_LOADLOC1             0x02
#define OP_LOADLOC2             0x03
#define OP_LOADLOC3             0x04
#define OP_LOADLOC4             0x05
#define OP_LOADLOC5             0x06
#define OP_LOADLOC6             0x07
#define OP_LOADLOC7             0x08
#define OP_LOADLOC8             0x09
#define OP_LOADLOC9             0x0a
#define OP_LOADLOC10            0x0b
#define OP_LOADLOC11            0x0c
#define OP_LOC0LOC1             0x0d
#define OP_LOC1LOC2             0x0e
#define OP_LOC2LOC3             0x0f
#define OP_LOC1LOC0             0x10
#define OP_LOC2LOC1             0x11
#define OP_LOC3LOC2             0x12
#define OP_VNIL                 0x13
#define OP_LOADLIT              0x14
#define OP_LOADLIT1             0x15
#define OP_LOADLIT2             0x16
#define OP_LOADLIT3             0x17
#define OP_LOADLIT4             0x18
#define OP_LOADLIT5             0x19
#define OP_LOADLIT6             0x1a
#define OP_LOADLIT7             0x1b
#define OP_LOADFREE             0x1c
#define OP_LOADFREE1            0x1d
#define OP_LOADFREE2            0x1e
#define OP_LOADFREE3            0x1f
#define OP_LOADFREE4            0x20
#define OP_STORELOC             0x21
#define OP_STORELOC0            0x22
#define OP_STORELOC1            0x23
#define OP_STORELOC2            0x24
#define OP_STORELOC3            0x25
#define OP_STORELOC4            0x26
#define OP_STORELOC5            0x27
#define OP_STORELOC6            0x28
#define OP_STORELOC7            0x29
#define OP_STOREFREE            0x2a
#define OP_STOREFREE1           0x2b
#define OP_STOREFREE2           0x2c
#define OP_STOREFREE3           0x2d
#define OP_LOADLEX              0x2e
#define OP_STORELEX             0x2f
#define OP_CLOSURE              0x30
#define OP_CARLOC0              0x31
#define OP_CARLOC1              0x32
#define OP_CARLOC2              0x33
#define OP_CARLOC3              0x34
#define OP_CARLOC4              0x35
#define OP_CARLOC5              0x36
#define OP_CARLOC6              0x37
#define OP_CARLOC7              0x38
#define OP_CARLOC8              0x39
#define OP_CARLOC9              0x3a
#define OP_CARLOC10             0x3b
#define OP_CARLOC11             0x3c
#define OP_CDRLOC0              0x3d
#define OP_CDRLOC1              0x3e
#define OP_CDRLOC2              0x3f
#define OP_CDRLOC3              0x40
#define OP_CDRLOC4              0x41
#define OP_CDRLOC5              0x42
#define OP_CAARLOC0             0x43
#define OP_CAARLOC1             0x44
#define OP_CAARLOC2             0x45
#define OP_CAARLOC3             0x46
#define OP_CALL0                0x47
#define OP_CALL1                0x48
#define OP_CALL2                0x49
#define OP_CALL2R               0x4a
#define OP_CALL3                0x4b
#define OP_CALLN                0x4c
#define OP_CALL0_0              0x4d
#define OP_CALL0_1              0x4e
#define OP_CALL0_2              0x4f
#define OP_CALL0_3              0x50
#define OP_CALL1_0              0x51
#define OP_CALL1_1              0x52
#define OP_CALL1_2              0x53
#define OP_CALL1_3              0x54
#define OP_CALL1_4              0x55
#define OP_CALL1_5              0x56
#define OP_CALL2_0              0x57
#define OP_CALL2_1              0x58
#define OP_CALL2_2              0x59
#define OP_CALL2_3              0x5a
#define OP_CALL2_4              0x5b
#define OP_BUILTIN0             0x5c
#define OP_BUILTIN1             0x5d
#define OP_BUILTIN2             0x5e
#define OP_BUILTIN2R            0x5f
#define OP_BUILTIN3             0x60
#define OP_APPLY1               0x61
#define OP_APPLY2               0x62
#define OP_APPLY3               0x63
#define OP_APPLY4               0x64
#define OP_JCALL                0x65
#define OP_JCALLN               0x66
#define OP_JUMP                 0x67
#define OP_JUMP_B               0x68
#define OP_JUMP_L               0x69
#define OP_JUMP_BL              0x6a
#define OP_JUMPNIL              0x6b
#define OP_JUMPNIL_B            0x6c
#define OP_JUMPNIL_L            0x6d
#define OP_JUMPNIL_BL           0x6e
#define OP_JUMPT                0x6f
#define OP_JUMPT_B              0x70
#define OP_JUMPT_L              0x71
#define OP_JUMPT_BL             0x72
#define OP_JUMPATOM             0x73
#define OP_JUMPATOM_B           0x74
#define OP_JUMPATOM_L           0x75
#define OP_JUMPATOM_BL          0x76
#define OP_JUMPNATOM            0x77
#define OP_JUMPNATOM_B          0x78
#define OP_JUMPNATOM_L          0x79
#define OP_JUMPNATOM_BL         0x7a
#define OP_JUMPEQ               0x7b
#define OP_JUMPEQ_B             0x7c
#define OP_JUMPEQ_L             0x7d
#define OP_JUMPEQ_BL            0x7e
#define OP_JUMPNE               0x7f
#define OP_JUMPNE_B             0x80
#define OP_JUMPNE_L             0x81
#define OP_JUMPNE_BL            0x82
#define OP_JUMPEQUAL            0x83
#define OP_JUMPEQUAL_B          0x84
#define OP_JUMPEQUAL_L          0x85
#define OP_JUMPEQUAL_BL         0x86
#define OP_JUMPNEQUAL           0x87
#define OP_JUMPNEQUAL_B         0x88
#define OP_JUMPNEQUAL_L         0x89
#define OP_JUMPNEQUAL_BL        0x8a
#define OP_JUMPL0NIL            0x8b
#define OP_JUMPL0T              0x8c
#define OP_JUMPL1NIL            0x8d
#define OP_JUMPL1T              0x8e
#define OP_JUMPL2NIL            0x8f
#define OP_JUMPL2T              0x90
#define OP_JUMPL3NIL            0x91
#define OP_JUMPL3T              0x92
#define OP_JUMPL4NIL            0x93
#define OP_JUMPL4T              0x94
#define OP_JUMPST0NIL           0x95
#define OP_JUMPST0T             0x96
#define OP_JUMPST1NIL           0x97
#define OP_JUMPST1T             0x98
#define OP_JUMPST2NIL           0x99
#define OP_JUMPST2T             0x9a
#define OP_JUMPL0ATOM           0x9b
#define OP_JUMPL0NATOM          0x9c
#define OP_JUMPL1ATOM           0x9d
#define OP_JUMPL1NATOM          0x9e
#define OP_JUMPL2ATOM           0x9f
#define OP_JUMPL2NATOM          0xa0
#define OP_JUMPL3ATOM           0xa1
#define OP_JUMPL3NATOM          0xa2
#define OP_JUMPFREE1NIL         0xa3
#define OP_JUMPFREE1T           0xa4
#define OP_JUMPFREE2NIL         0xa5
#define OP_JUMPFREE2T           0xa6
#define OP_JUMPFREE3NIL         0xa7
#define OP_JUMPFREE3T           0xa8
#define OP_JUMPFREE4NIL         0xa9
#define OP_JUMPFREE4T           0xaa
#define OP_JUMPFREENIL          0xab
#define OP_JUMPFREET            0xac
#define OP_JUMPLIT1EQ           0xad
#define OP_JUMPLIT1NE           0xae
#define OP_JUMPLIT2EQ           0xaf
#define OP_JUMPLIT2NE           0xb0
#define OP_JUMPLIT3EQ           0xb1
#define OP_JUMPLIT3NE           0xb2
#define OP_JUMPLIT4EQ           0xb3
#define OP_JUMPLIT4NE           0xb4
#define OP_JUMPLITEQ            0xb5
#define OP_JUMPLITNE            0xb6
#define OP_JUMPB1NIL            0xb7
#define OP_JUMPB1T              0xb8
#define OP_JUMPB2NIL            0xb9
#define OP_JUMPB2T              0xba
#define OP_JUMPFLAGP            0xbb
#define OP_JUMPNFLAGP           0xbc
#define OP_JUMPEQCAR            0xbd
#define OP_JUMPNEQCAR           0xbe
#define OP_CATCH                0xbf
#define OP_CATCH_B              0xc0
#define OP_CATCH_L              0xc1
#define OP_CATCH_BL             0xc2
#define OP_UNCATCH              0xc3
#define OP_THROW                0xc4
#define OP_PROTECT              0xc5
#define OP_UNPROTECT            0xc6
#define OP_PVBIND               0xc7
#define OP_PVRESTORE            0xc8
#define OP_FREEBIND             0xc9
#define OP_FREERSTR             0xca
#define OP_EXIT                 0xcb
#define OP_NILEXIT              0xcc
#define OP_LOC0EXIT             0xcd
#define OP_LOC1EXIT             0xce
#define OP_LOC2EXIT             0xcf
#define OP_PUSH                 0xd0
#define OP_PUSHNIL              0xd1
#define OP_PUSHNIL2             0xd2
#define OP_PUSHNIL3             0xd3
#define OP_PUSHNILS             0xd4
#define OP_POP                  0xd5
#define OP_LOSE                 0xd6
#define OP_LOSE2                0xd7
#define OP_LOSE3                0xd8
#define OP_LOSES                0xd9
#define OP_SWOP                 0xda
#define OP_EQ                   0xdb
#define OP_EQCAR                0xdc
#define OP_EQUAL                0xdd
#define OP_NUMBERP              0xde
#define OP_CAR                  0xdf
#define OP_CDR                  0xe0
#define OP_CAAR                 0xe1
#define OP_CADR                 0xe2
#define OP_CDAR                 0xe3
#define OP_CDDR                 0xe4
#define OP_CONS                 0xe5
#define OP_NCONS                0xe6
#define OP_XCONS                0xe7
#define OP_ACONS                0xe8
#define OP_LENGTH               0xe9
#define OP_LIST2                0xea
#define OP_LIST2STAR            0xeb
#define OP_LIST3                0xec
#define OP_PLUS2                0xed
#define OP_ADD1                 0xee
#define OP_DIFFERENCE           0xef
#define OP_SUB1                 0xf0
#define OP_TIMES2               0xf1
#define OP_GREATERP             0xf2
#define OP_LESSP                0xf3
#define OP_FLAGP                0xf4
#define OP_GET                  0xf5
#define OP_LITGET               0xf6
#define OP_GETV                 0xf7
#define OP_QGETV                0xf8
#define OP_QGETVN               0xf9
#define OP_BIGSTACK             0xfa
#define OP_BIGCALL              0xfb
#define OP_ICASE                0xfc
#define OP_FASTGET              0xfd
#define OP_SPARE1               0xfe
#define OP_SPARE2               0xff

#endif /* header_bytes_h */

/* end of bytes.h */



REDUCE Historical
REDUCE Sourceforge Project | Historical SVN Repository | GitHub Mirror | SourceHut Mirror | NotABug Mirror | Chisel Mirror | Chisel RSS ]