Why I call it polymorphic
One datapath.
Different logic with each instruction.
I use polymorphic to describe how an instruction configures the machine’s existing paths. It starts with the Dual-LUT ALU: two programmable Boolean functions feed the same adder. Change their truth tables and carry selection, and the circuit can perform ordinary arithmetic, logic, or a compound expression such as A + (B AND C).
The flexibility extends beyond the ALU. The instruction ROM also selects operand sources, immediate interpretation, and the controls for flags, write-back, and sequencing. The immediate box is one part of that system: it constructs a value from instruction bits combinationally, without a separate conversion instruction.
Both the operation and the way its operands reach it can change. That is the idea behind the name. ISA profiles map supported operations onto these controls; a profile alone does not establish compatibility with unmodified foreign binaries.
See the instruction mappings Why I designed it this wayOne adder.
f(A,B,C) + g(A,B,C) + cinArithmetic, Boolean logic, or both in the same evaluation.
Register values and immediate sources feed the computation.
Sixteen selections construct signed, unsigned, and other forms.
Controls select where the result goes and how execution proceeds.
