1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
/*****
* opcodes.h
* Andy Hammerlindl 2010/10/24
*
* A list of the virtual machine opcodes, defined by the macro OPCODE.
*****/
/* The first parameter is the name of the opcode. The second parameter is a
* character indicating what additional information (if any) is encoded with
* the opcode:
* x - nothing
* n - integer
* t - item
* b - builtin
* l - lambda pointer
* o - instruction offset
*/
OPCODE(nop, 'x')
OPCODE(pop,'x')
OPCODE(intpush,'n')
OPCODE(constpush,'t')
OPCODE(varpush,'n')
OPCODE(varsave,'n')
OPCODE(fieldpush,'n')
OPCODE(fieldsave,'n')
OPCODE(builtin,'b')
OPCODE(jmp,'o')
OPCODE(cjmp,'o')
OPCODE(njmp,'o')
OPCODE(popcall,'x')
OPCODE(pushclosure,'x')
OPCODE(makefunc,'l')
OPCODE(ret,'x')
OPCODE(pushframe,'n')
OPCODE(popframe,'x')
OPCODE(push_default,'x')
OPCODE(jump_if_not_default,'o')
#ifdef COMBO
OPCODE(varpop,'n')
OPCODE(fieldpop,'n')
OPCODE(gejmp,'o')
#endif
|