diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2018-03-13 22:38:03 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2018-03-13 22:38:03 -0700 |
commit | f3fddb31b01d7f015d9f35b6c6312fad28177ae4 (patch) | |
tree | d5ce85d662e20b94da8bd004cc7ee631a47b7c26 /vm.c | |
parent | a97e0a1abfce633fc46f86c3e804a9eebb8ed7f0 (diff) | |
download | txr-f3fddb31b01d7f015d9f35b6c6312fad28177ae4.tar.gz txr-f3fddb31b01d7f015d9f35b6c6312fad28177ae4.tar.bz2 txr-f3fddb31b01d7f015d9f35b6c6312fad28177ae4.zip |
higher level disassemble function.
* lisplib.c (asm_set_entries): Autoload on usr:disassemble.
* share/txr/stdlib/asm.tl (assembler): Drop initializer
from bstr slot. Requires complex initialization for the
case when the buf is supplied by the constructor caller
for the sake of disassembling existing code.
(assembler :postinit): Handle cases when only one of
buf or bstr are set, and when both are not set,
for the greatest flexibility.
(disassemble-c-d, disassemble): New functions.
* vm.c (vm_desc_datavec): New static function.
(vm_init): Registered vm-desc-datavec intrinsic.
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -151,6 +151,12 @@ static val vm_desc_bytecode(val desc) return vd->bytecode; } +static val vm_desc_datavec(val desc) +{ + struct vm_desc *vd = vm_desc_struct(desc); + return vd->datavec; +} + static void vm_desc_mark(val obj) { struct vm_desc *vd = coerce(struct vm_desc *, obj->co.handle); @@ -825,5 +831,6 @@ void vm_init(void) vm_closure_s = intern(lit("vm-closure"), system_package); reg_fun(intern(lit("vm-make-desc"), system_package), func_n4(vm_make_desc)); reg_fun(intern(lit("vm-desc-bytecode"), system_package), func_n1(vm_desc_bytecode)); + reg_fun(intern(lit("vm-desc-datavec"), system_package), func_n1(vm_desc_datavec)); reg_fun(intern(lit("vm-execute-toplevel"), system_package), func_n1(vm_execute_toplevel)); } |