Add simplified LogicalShiftRight64 IR opcode

This commit is contained in:
Tillmann Karras
2016-08-07 14:23:33 +01:00
committed by MerryMage
parent ccb2aa96a5
commit 5d26899ac9
4 changed files with 17 additions and 0 deletions

View File

@@ -169,6 +169,10 @@ IREmitter::ResultAndCarry IREmitter::LogicalShiftRight(const IR::Value& value_in
return {result, carry_out};
}
IR::Value IREmitter::LogicalShiftRight64(const IR::Value& value_in, const IR::Value& shift_amount) {
return Inst(IR::Opcode::LogicalShiftRight64, {value_in, shift_amount});
}
IREmitter::ResultAndCarry IREmitter::ArithmeticShiftRight(const IR::Value& value_in, const IR::Value& shift_amount, const IR::Value& carry_in) {
auto result = Inst(IR::Opcode::ArithmeticShiftRight, {value_in, shift_amount, carry_in});
auto carry_out = Inst(IR::Opcode::GetCarryFromOp, {result});