From 161491beb0440bd63d9c956d1e0a6ef4a4c0c675 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 1 Oct 2020 06:24:32 -0700 Subject: 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. --- vmop.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'vmop.h') 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, -- cgit v1.2.3