Merge pull request #2022 from MaxGraey/peepmatic-bnot

peepmatic: Add bnot operation
This commit is contained in:
Nick Fitzgerald
2020-07-17 09:39:38 -07:00
committed by GitHub
3 changed files with 10 additions and 0 deletions

View File

@@ -237,6 +237,7 @@ impl Opcode {
BandImm, BandImm,
Bconst, Bconst,
Bint, Bint,
Bnot,
Bor, Bor,
BorImm, BorImm,
Brnz, Brnz,
@@ -549,6 +550,11 @@ unsafe impl<'a, 'b> InstructionSet<'b> for &'a dyn TargetIsa {
let val = pos.ins().bint(ty, a); let val = pos.ins().bint(ty, a);
pos.func.dfg.value_def(val).unwrap_inst().into() pos.func.dfg.value_def(val).unwrap_inst().into()
} }
Operator::Bnot => {
let a = part_to_value(pos, root, a).unwrap();
let val = pos.ins().bnot(a);
pos.func.dfg.value_def(val).unwrap_inst().into()
}
Operator::Brnz => { Operator::Brnz => {
let a = part_to_value(pos, root, a).unwrap(); let a = part_to_value(pos, root, a).unwrap();

View File

@@ -45,6 +45,10 @@ pub enum Operator {
#[peepmatic(params(bNN), result(iNN))] #[peepmatic(params(bNN), result(iNN))]
Bint, Bint,
/// `bnot`
#[peepmatic(params(iNN), result(iNN))]
Bnot,
/// `bor` /// `bor`
#[peepmatic(params(iNN, iNN), result(iNN))] #[peepmatic(params(iNN, iNN), result(iNN))]
Bor, Bor,