# ALU opcodes | mnemonic | operands | outputs | opcode | |----------|----------|-----------------------|--------| | ADD | I1, I2 | U0 = I1 + I2 + C | | | SUB | I1, I2 | U0 = I1 - I2 - C | | | MULU | I1, I2 | U1:U0 = I1 * I2 | | | MULS | I1, I2 | U1:U0 = (s)I1 * (s)I2 | | | DIVU | I1, I2 | U0 = I1 / I2 | | | | | U1 = I1 % I2 | | | DIVS | I1, I2 | U0 = (s)I1 / (s)I2 | | | | | U1 = U1 % Rd2 > 0 | | | SHL | I1, I2 | U0 = I1 << I2 | | | ROL | I1, I2 | U0 = I1 rot_l I2) | | | SHR | I1, I2 | U0 = I1 >> I2 | | | ROR | I1, I2 | U0 = I1 rot_r I2 | | | AND | I1, I2 | U0 = I1 & I2 | | | OR | I1, I2 | U0 = I1 or I2 | | | NOT | I1 | U0 = !I1 | | | XOR | I1, I2 | U0 = I1 xor I2 | |