Currently, all instructions are encoded using 5 bit representation. This has several implications:
There can be at most 32 operations
All operations must have degree 3 or less
However, most operations have degree 2 or less with HASHR and CMP being two exceptions.
We can expand the encoding of instructions to 7 bits, such that the upper 2 bits encode high-degree operations, while lower 5 bits encode low-degree operations. This would enable the following:
The number of operations would increase to 34. Out of these:
2 operations would be of degree 6 or less
30 operations would be of degree 3 or less
2 operations: BEGIN and NOOP would span all 7 bits (would be shared between two groups of instructions)
We could move HASHR operation into the high-degree group and increase S-Box degree to 5.
We could move CMP operation to the high-degree group and simplify the constraints so that they don't need to rely on aux stack register.
We would be able to use the 8th bit in all opcodes to enable instruction mirroring in the alt stack.
Currently, all instructions are encoded using 5 bit representation. This has several implications:
However, most operations have degree 2 or less with
HASHR
andCMP
being two exceptions.We can expand the encoding of instructions to 7 bits, such that the upper 2 bits encode high-degree operations, while lower 5 bits encode low-degree operations. This would enable the following:
BEGIN
andNOOP
would span all 7 bits (would be shared between two groups of instructions)HASHR
operation into the high-degree group and increase S-Box degree to 5.CMP
operation to the high-degree group and simplify the constraints so that they don't need to rely on aux stack register.