SchemeStation VM instruction numbers and argument types

SchemeStation VM instruction numbers and argument types
SchemeStation documentation

1 Introduction

Each SchemeStation VM instruction has a unique number (0-255) for the binary representation of the instructions.

2 Assigned numbers

Assigned SchemeStation VM instruction numbers
0NOP
1HALT
2JUMPREG
3JUMP_IMMEDIATELABEL
4BRANCHREG REG
5BRANCH_IMMEDIATEREG LABEL
6PUSHREG REG
7POPREG REG
8SET_EXCEPTION_HANDLERREG
9ENABLE_EXCEPTIONS
10DISABLE_EXCEPTIONS
11SEND_MESSAGEREG REG
12GET_MESSAGEREG
13PUT_MESSAGEREG
14CREATE_PROCEDUREREG REG REG
15GET_PROCEDURE_ENVREG REG
16GET_PROCEDURE_ADDRESSREG REG
17IS_OF_BOOLEANREG REG
18IS_OF_INTEGERREG REG
19IS_OF_FLOATREG REG
20IS_OF_PAIRREG REG
21IS_OF_PAIR_TAGGEDREG REG REG
22IS_OF_VECTORREG REG
23IS_OF_VECTOR_TAGGEDREG REG REG
24IS_OF_PRIVATE_BIT_STRINGREG REG
25IS_OF_PRIVATE_BIT_STRING_TAGGEDREG REG REG
26IS_OF_SHARED_BIT_STRINGREG REG
27IS_OF_SHARED_BIT_STRING_TAGGEDREG REG REG
28IS_OF_PROCEDUREREG REG
29IS_OF_ACTOR_ADDRESSREG REG
30IS_OF_BYTE_CODEREG REG
31MOVEREG REG
32LOADREG LITERAL
33LOAD_NULLREG
34INT_ADDREG REG REG
35INT_SUBREG REG REG
36INT_MULREG REG REG
37INT_DIVREG REG REG
38INT_MODREG REG REG
39INT_REMREG REG REG
40FLOAT_ADDREG REG REG
41FLOAT_SUBREG REG REG
42FLOAT_MULREG REG REG
43FLOAT_DIVREG REG REG
44FLOAT_MODREG REG REG
45FLOAT_REMREG REG REG
46FLOAT_LOGREG REG
47FLOAT_LOG10REG REG
48FLOAT_EXPREG REG
49FLOAT_SQRTREG REG
50SHRREG REG REG
51SHLREG REG REG
52ANDREG REG REG
53ORREG REG REG
54XORREG REG REG
55NEGREG REG
56RORREG REG REG
57ROLREG REG REG
58LANDREG REG REG
59LORREG REG REG
60NOTREG REG
61BOOLEAN_NOTREG REG
62INT_TO_FLOATREG REG
63FLOAT_TO_INTREG REG
64INT_TO_BIT_STRINGREG REG REG
65BIT_STRING_TO_INTREG REG REG
66EQREG REG REG
67INT_CMPREG REG REG
68FLOAT_CMPREG REG REG
69INT_GEREG REG REG
70FLOAT_GEREG REG REG
71GET_SUBSTRINGREG REG REG REG
72SET_SUBSTRINGREG REG REG
73ALLOC_PAIRREG
74ALLOC_PAIR_TAGGEDREG REG
75ALLOC_VECTORREG REG
76ALLOC_VECTOR_TAGGEDREG REG REG
77ALLOC_SHARED_BIT_STRINGREG REG
78ALLOC_SHARED_BIT_STRING_TAGGEDREG REG REG
79ALLOC_PRIVATE_BIT_STRINGREG REG
80ALLOC_PRIVATE_BIT_STRING_TAGGEDREG REG REG
81PAIR_SET_CARREG REG
82PAIR_SET_CDRREG REG
83PAIR_GET_CARREG REG
84PAIR_GET_CDRREG REG
85VECTOR_SETREG REG REG
86VECTOR_GETREG REG REG
87VECTOR_SET_INDEXREG REG LITERAL
88VECTOR_GET_INDEXREG REG LITERAL
89VECTOR_LENREG REG
90BIT_STRING_LENREG REG
91COPY_PAIRREG REG
92COPY_VECTORREG REG
93COPY_BIT_STRINGREG REG
94CONSREG REG REG
95SAVEREG REG
96RESTOREREG REG
97ALLOC_INTEGERREG
98ALLOC_FLOATREG
99ALLOC_BOOLEANREG
100INTEGER_SETREG REG
101FLOAT_SETREG REG
102BOOLEAN_SETREG REG
103INTEGER_GETREG REG
104FLOAT_GETREG REG
105BOOLEAN_GETREG REG
106PAIR_GET_CAR_OR_BLOCKREG REG
107ALLOC_VECTOR_IMMEDIATEREG LITERAL
108CREATE_PROCEDURE_IMMEDIATEREG REG LABEL
109SAVE_IMMEDIATEREG LITERAL
110RESTORE_IMMEDIATEREG LITERAL
111BIT_STRING_CMPREG REG REG
112BIT_STRING_GEREG REG REG
113TAG_CMPREG REG LITERAL
114IMM_EXTEND[special]