summaryrefslogtreecommitdiffstats
path: root/vmop.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2020-10-01 06:24:32 -0700
committerKaz Kylheku <kaz@kylheku.com>2020-10-01 06:24:32 -0700
commit161491beb0440bd63d9c956d1e0a6ef4a4c0c675 (patch)
tree0cd678876993e663410b5c8c37cf84df45e0cde8 /vmop.h
parent142306745269a3eb228aa3d79f595688f941a292 (diff)
downloadtxr-161491beb0440bd63d9c956d1e0a6ef4a4c0c675.tar.gz
txr-161491beb0440bd63d9c956d1e0a6ef4a4c0c675.tar.bz2
txr-161491beb0440bd63d9c956d1e0a6ef4a4c0c675.zip
vm: deprecate move-immediate instructions.
The movrsi, movrmi and movrbi (move immediate {small, medium, big} to register) instructions are becoming deprecated. The reasoning is that character and fixnum operands can just go into a VM descriptor's data vector (D registers). Then they can be referenced directly without wastefully issuing an extra instruction. * genvmop.txr: Add a deprecated comment next to the enum constants of deprecated opcodes. * share/txr/stdlib/asm.tl (oc-base): Add Boolean property which indicates that an opcode is deprecated. This is a static class variable, defaulting to nil in the base class. (op-movrsi, op-movsmi, op-movrbi): Override base class deprecated property with a true value. * vmop.h: Regenerated.
Diffstat (limited to 'vmop.h')
-rw-r--r--vmop.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/vmop.h b/vmop.h
index 7c2e6185..3f2c2f43 100644
--- a/vmop.h
+++ b/vmop.h
@@ -40,9 +40,9 @@ typedef enum vm_op {
MOVRS = 11,
MOVSR = 12,
MOVRR = 13,
- MOVRSI = 14,
- MOVSMI = 15,
- MOVRBI = 16,
+ MOVRSI = 14, /* deprecated */
+ MOVSMI = 15, /* deprecated */
+ MOVRBI = 16, /* deprecated */
JMP = 17,
IF = 18,
IFQ = 19,