diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-10-01 06:24:32 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-10-01 06:24:32 -0700 |
commit | 161491beb0440bd63d9c956d1e0a6ef4a4c0c675 (patch) | |
tree | 0cd678876993e663410b5c8c37cf84df45e0cde8 /vmop.h | |
parent | 142306745269a3eb228aa3d79f595688f941a292 (diff) | |
download | txr-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.h | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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, |