From e9b3403ca46b64153914695cc3ab3eb6a0e057ac Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 11 Jan 2021 07:47:42 -0800 Subject: vm: derive duplicated constants from Lisp origin. Some constnats in vm.c are hand-duplicates of ones in vm-param.tl. Let's put them in vmop.h instead, where they can be generated by the genvmop.txr script. The two new constants are anticipated for some upcoming VM work. * genvmop.txr: Generate the existing VM_LEV_BITS, VM_LEV_MASK, VM_SM_LEV_BITS and VM_SM_LEV_MASK from the Lisp constants. Also, let's add two new ones. * vm.c (VM_LEV_BITS, VM_LEV_MASK, VM_SM_LEV_BITS, VM_SM_LEV_MASK): Preprocessor symbols removed. * vmop.h (VM_LEV_BITS, VM_LEV_MASK, VM_SM_LEV_BITS, VM_SM_LEV_MASK): Preprocessor symbols generated here with identical values. (VM_MAX_LEV, VM_MAX_V_LEV): New constants. --- genvmop.txr | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'genvmop.txr') 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) -- cgit v1.2.3