(add || aluThrough) -> (rs1 + rs2), (inst.slti || inst.slt) -> (rs1.asSInt() < rs2.asSInt()).asUInt(), (inst.sltiu || inst.sltu) -> (rs1 < rs2), inst.sub -> (rs1 - rs2), (inst.andi || inst.and) -> (rs1 & rs2), (inst.ori || inst.or) -> (rs1 | rs2), (inst.xori || inst.xor) -> (rs1 ^ rs2), (inst.slli || inst.sll) -> (rs1 << shamt)(cfg.arch.xlen - 1, 0), (inst.srli || inst.srl) -> (rs1 >> shamt), (inst.srai || inst.sra) -> (rs1.asSInt() >> shamt).asUInt(), inst.lui -> inst.immU) val alu = rv32iAlu // ++ Seq(他のextension)でALUを拡張できる