/* bytes.h Copyright (C) Codemist 1993-2007 */
/*
* 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: 5cbdaad7 18-Jan-2007 */
/*
* 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 */