diff options
-rw-r--r-- | genvmop.txr | 7 | ||||
-rw-r--r-- | vm.c | 4 | ||||
-rw-r--r-- | vmop.h | 7 |
3 files changed, 14 insertions, 4 deletions
diff --git a/genvmop.txr b/genvmop.txr index 73864d08..5e80948a 100644 --- a/genvmop.txr +++ b/genvmop.txr @@ -16,4 +16,11 @@ typedef enum vm_op { " /* deprecated */") @ (end) } vm_op_t; + +#define VM_LEV_BITS @{sys:%lev-bits%} +#define VM_LEV_MASK @(fmt "0x~X" (pred (ash 1 sys:%lev-bits%))) +#define VM_SM_LEV_BITS @{sys:%sm-lev-bits%} +#define VM_SM_LEV_MASK @(fmt "0x~X" (pred (ash 1 sys:%sm-lev-bits%))) +#define VM_MAX_LEV @{sys:%max-lev%} +#define VM_MAX_V_LEV @{sys:%max-v-lev%} @(end) @@ -343,10 +343,6 @@ static void vm_reset(struct vm *vm, struct vm_desc *vd, #define vm_insn_bigop(insn) (((insn) & 0x3FFFFFFU)) #define vm_arg_operand_lo(arg) ((arg) & 0xFFFFU) #define vm_arg_operand_hi(arg) ((arg) >> 16) -#define VM_LEV_BITS 10 -#define VM_LEV_MASK 0x3FF -#define VM_SM_LEV_BITS 6 -#define VM_SM_LEV_MASK 0x3F #define vm_lev(arg) ((arg) >> VM_LEV_BITS) #define vm_idx(arg) ((arg) & VM_LEV_MASK) #define vm_sm_lev(arg) ((arg) >> VM_SM_LEV_BITS) @@ -70,3 +70,10 @@ typedef enum vm_op { SETLX = 41, GETF = 42, } vm_op_t; + +#define VM_LEV_BITS 10 +#define VM_LEV_MASK 0x3FF +#define VM_SM_LEV_BITS 6 +#define VM_SM_LEV_MASK 0x3F +#define VM_MAX_LEV 63 +#define VM_MAX_V_LEV 61 |