potion  0.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
opcodes.h File Reference

the Potion VM instruction set (heavily based on Lua's) More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  PN_OP
 PN_OP - a compressed three-address op (as 32bit int bitfield) TODO: expand to 64bit, check jit then. More...
 

Macros

#define PN_OP_AT(asmb, n)   ((PN_OP *)((PNFlex *)asmb)->ptr)[n]
 
#define PN_OP_LEN(asmb)   (PN_FLEX_SIZE(asmb) / sizeof(PN_OP))
 

Enumerations

enum  PN_OPCODE {
  OP_NONE, OP_MOVE, OP_LOADK, OP_LOADPN,
  OP_SELF, OP_NEWTUPLE, OP_GETTUPLE, OP_SETTUPLE,
  OP_GETLOCAL, OP_SETLOCAL, OP_GETUPVAL, OP_SETUPVAL,
  OP_GLOBAL, OP_GETTABLE, OP_SETTABLE, OP_NEWLICK,
  OP_GETPATH, OP_SETPATH, OP_ADD, OP_SUB,
  OP_MULT, OP_DIV, OP_REM, OP_POW,
  OP_NOT, OP_CMP, OP_EQ, OP_NEQ,
  OP_LT, OP_LTE, OP_GT, OP_GTE,
  OP_BITN, OP_BITL, OP_BITR, OP_DEF,
  OP_BIND, OP_MSG, OP_JMP, OP_TEST,
  OP_TESTJMP, OP_NOTJMP, OP_NAMED, OP_CALL,
  OP_CALLSET, OP_TAILCALL, OP_RETURN, OP_PROTO,
  OP_CLASS, OP_DEBUG
}
 

Detailed Description

the Potion VM instruction set (heavily based on Lua's)

(c) 2008 why the lucky stiff, the freelance professor (c) 2014 perl11.org

Definition in file opcodes.h.

Macro Definition Documentation

#define PN_OP_AT (   asmb,
 
)    ((PN_OP *)((PNFlex *)asmb)->ptr)[n]

Definition at line 82 of file opcodes.h.

#define PN_OP_LEN (   asmb)    (PN_FLEX_SIZE(asmb) / sizeof(PN_OP))

Definition at line 83 of file opcodes.h.

Enumeration Type Documentation

enum PN_OPCODE
Enumerator
OP_NONE 
OP_MOVE 
OP_LOADK 
OP_LOADPN 
OP_SELF 
OP_NEWTUPLE 
OP_GETTUPLE 
OP_SETTUPLE 
OP_GETLOCAL 
OP_SETLOCAL 
OP_GETUPVAL 
OP_SETUPVAL 
OP_GLOBAL 
OP_GETTABLE 
OP_SETTABLE 
OP_NEWLICK 
OP_GETPATH 
OP_SETPATH 
OP_ADD 
OP_SUB 
OP_MULT 
OP_DIV 
OP_REM 
OP_POW 
OP_NOT 
OP_CMP 
OP_EQ 
OP_NEQ 
OP_LT 
OP_LTE 
OP_GT 
OP_GTE 
OP_BITN 
OP_BITL 
OP_BITR 
OP_DEF 
OP_BIND 
OP_MSG 
OP_JMP 
OP_TEST 
OP_TESTJMP 
OP_NOTJMP 
OP_NAMED 
OP_CALL 
OP_CALLSET 
OP_TAILCALL 
OP_RETURN 
OP_PROTO 
OP_CLASS 
OP_DEBUG 

Definition at line 9 of file opcodes.h.