Checked operations on multiword register banks #
The constants are installed as explicit half-word digits. Boolean operations execute one
standard instruction per digit. Scalar arithmetic is provided separately in BankScalar.
Main definitions #
Bank.constantDigits,Bank.constant: canonical eighteen-digit decomposition and installation of a width-dependent constant.Bank.boolean: limbwise Boolean operations.Bank.inputReg,Bank.allRegs,Bank.clear,Bank.input: the physical input register, the list of all bank digit registers, bank initialization, and input loading.
Main results #
Bank.exec_constant,Bank.exec_boolean: execution and preservation of the other bank entries.
References #
Canonical fixed-length digits; no computation depending on the run-time input is performed by the constant installer.
Instances For
Install an eighteen-digit constant, charging all eighteen constants and the final copy.
Instances For
A Boolean operation on two bank entries with a fresh destination.
Instances For
Executing boolean f a b d writes f.eval (v a) (v b) to bank entry d in 19 instructions,
preserving memory and all other bank entries.
Initialize every bank digit, charging one constant instruction per digit.
Instances For
Load the sole input from the usual RAM input memory, then split it into a bank entry. The input memory contains its length at address zero and its value at address one.
Instances For
Input delivery and conversion are charged: two input instructions and forty-four digit-conversion instructions. All remaining bank entries start at zero.