Expand description
The model
attempts to document what the HashX constraints are, separate
from the process of implementing those constraints.
Enums§
- Pass 🔒
- One specific pass in the multi-pass instruction choice process
- Register
Writer 🔒 - Information about the instruction that writes to a register, from the perspective of our particular constraints here
Constants§
- DISALLOW_
REGISTER_ 🔒FOR_ ADDSHIFT - Special case for register R5
- REQUIRED_
INSTRUCTIONS 🔒 - Programs require an exact number of instructions. (The instruction buffer must have filled without any of the other stopping conditions)
- REQUIRED_
MULTIPLIES 🔒 - Programs require an exact total number of multiply instructions, they can’t be skipped for any reason.
- REQUIRED_
OVERALL_ 🔒RESULT_ AT_ CYCLE - Programs require an exact overall data latency, represented as the simulated cycle at which the last register write completes.
Functions§
- disallow_
opcode_ 🔒pair - Should
proposed
be rejected as the immediate successor ofprevious
? - disallow_
src_ 🔒is_ dst - Does an instruction prohibit using the same register for src and dst?
- is_
multiply 🔒 - Determine which ops count when testing
REQUIRED_MULTIPLIES
. - writer_
pair_ 🔒allowed - Should
this_writer
be allowed on a register which was previously written usinglast_writer
?