home *** CD-ROM | disk | FTP | other *** search
- /* xsbcode.h - xscheme compiler byte code definitions */
- /* Copyright (c) 1988, by David Michael Betz
- All Rights Reserved
- Permission is granted for unrestricted non-commercial use */
-
- #define OP_BRT 0x01 /* branch on true */
- #define OP_BRF 0x02 /* branch on false */
- #define OP_BR 0x03 /* branch unconditionally */
- #define OP_LIT 0x04 /* load literal */
- #define OP_GREF 0x05 /* global symbol value */
- #define OP_GSET 0x06 /* set global symbol value */
- #define OP_EREF 0x09 /* environment variable value */
- #define OP_ESET 0x0A /* set environment variable value */
- #define OP_SAVE 0x0B /* save a continuation */
- #define OP_CALL 0x0C /* call a function */
- #define OP_RETURN 0x0D /* return from a function */
- #define OP_T 0x0E /* load 'val' with t */
- #define OP_NIL 0x0F /* load 'val' with nil */
- #define OP_PUSH 0x10 /* push the 'val' register */
- #define OP_CLOSE 0x11 /* create a closure */
-
- #define OP_FRAME 0x12 /* create a new enviroment frame */
- #define OP_MVARG 0x13 /* move required argument to frame slot */
- #define OP_MVOARG 0x14 /* move optional argument to frame slot */
- #define OP_MVRARG 0x15 /* build rest argument and move to frame slot */
- #define OP_ADROP 0x19 /* drop the rest of the arguments */
- #define OP_ALAST 0x1A /* make sure there are no more arguments */
- #define OP_DELAY 0x1B /* create a promise */
-
- #define OP_AREF 0x1C /* access a variable in an environment */
- #define OP_ASET 0x1D /* set a variable in an environment */
-
- #define OP_ATOM 0x1E /* atom predicate */
- #define OP_EQ 0x1F /* eq? predicate */
- #define OP_NULL 0x20 /* null? (or not) predicate */
- #define OP_CONS 0x21 /* cons */
- #define OP_CAR 0x22 /* car */
- #define OP_CDR 0x23 /* cdr */
- #define OP_SETCAR 0x24 /* set-car! */
- #define OP_SETCDR 0x25 /* set-cdr! */
-
- #define OP_ADD 0x40 /* add two numeric expressions */
- #define OP_SUB 0x41 /* subtract two numeric expressions */
- #define OP_MUL 0x42 /* multiply two numeric expressions */
- #define OP_QUO 0x43 /* divide two integer expressions */
- #define OP_LSS 0x44 /* less than */
- #define OP_EQL 0x45 /* equal to */
- #define OP_GTR 0x46 /* greater than */
-