Unit Bus = 4 bits
Function Bus = 4 bits
Immediate Bus = 24 bits (or 18 - we don't have any type 0 instructions! HEY!)
Size Bus = 2 bits
Flags Bus = 6 bits
Register A = 6 bits
Register B = 6 bits
Register C = 6 bits
Total = 58 bits (or 52)
 
 
Unit Type Function Bus
Unit Function Immediate Size Flags
Integer Add 000x 0000 don't care yes Mode 0
Subtract 0001
Add I 0010 yes
Subtract I 0011
Multiply 0100 don't care yes
Divide 0101
Modulo 0110
Multiply I 0111 yes
Divide I 1000
Modulo I 1001
Bitshuffling & Shift 001x 0000 don't care yes Mode 1
Logic Operations Rotate 0001
Byte Reverse 0010
Bit Reverse 0011
Logic 0100
Single Bit Logic 0101
Test 0110
SIMD Mix 0111
SIMD Expand 1000
Shift I 1001 yes
Rotate I 1010
Byte Reverse I 1011
Bit Reverse I 1100
Floating Point Add/Subtract 010x 0000 don't care yes Mode 2
Integer to F P 0001
F P to Integer 0010
Inverse 0011
Square Root 0100
Multiply 0101
Divide 0110
1/Square Root 0111
Register Exchange Move 0110 0000 don't care yes Mode 3
Put 0001
Get 0010
Process Control Absolute Jump 0111 0000 don't care don't care don't care
Loopentry 0001
Loop 0010
Cache Control 0011 yes
Absolute Jump I 0100 yes don't care
Relative Jump I 0101
Load/Store Load 11xx** 0000 don't care yes Mode 4
Store 0001
Load I 0010 yes
Store I 0011
Load Constant 0100 yes don't care
* Where x = Unit #
** Where xx = Load/Store Unit #
 
Flags Bus Mode 0
Signed Flags[0]
SIMD Flags[1]
Saturate/Floor Flags[2]
Unused Flags[3:6]

 
Flags Bus Mode 1
Signed Flags[0]
SIMD Flags[1]
Direction Flags[2]
Mode Flags[3:6]

 
Flags Bus Mode 2
Negate Flags[0]
SIMD Flags[1]
Direction Flags[2]
No IEEE Flags[3]
Rounding Method Flags[4:6]

 
Flags Bus Mode 3
Negate Flags[0]
Unused Flags[1:4]
High Part Replacement Method Flags[5:6]

 
Flags Bus Mode 4
Negate Flags[0]
Endian Flags[1]
Unused Flags[2:3]
Shift Flags[4:6]