summaryrefslogtreecommitdiff
path: root/rust/src/medium_level_il/lift.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/medium_level_il/lift.rs')
-rw-r--r--rust/src/medium_level_il/lift.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/rust/src/medium_level_il/lift.rs b/rust/src/medium_level_il/lift.rs
index 2f0d6653..f886d93a 100644
--- a/rust/src/medium_level_il/lift.rs
+++ b/rust/src/medium_level_il/lift.rs
@@ -102,6 +102,10 @@ pub enum MediumLevelILLiftedInstructionKind {
ModuDp(LiftedBinaryOp),
Mods(LiftedBinaryOp),
ModsDp(LiftedBinaryOp),
+ MinSigned(LiftedBinaryOp),
+ MaxSigned(LiftedBinaryOp),
+ MinUnsigned(LiftedBinaryOp),
+ MaxUnsigned(LiftedBinaryOp),
CmpE(LiftedBinaryOp),
CmpNe(LiftedBinaryOp),
CmpSlt(LiftedBinaryOp),
@@ -160,6 +164,7 @@ pub enum MediumLevelILLiftedInstructionKind {
Ctz(LiftedUnaryOp),
Rbit(LiftedUnaryOp),
Cls(LiftedUnaryOp),
+ Abs(LiftedUnaryOp),
Sx(LiftedUnaryOp),
Zx(LiftedUnaryOp),
LowPart(LiftedUnaryOp),
@@ -264,6 +269,10 @@ impl MediumLevelILLiftedInstruction {
ModuDp(_) => "ModuDp",
Mods(_) => "Mods",
ModsDp(_) => "ModsDp",
+ MinSigned(_) => "MinSigned",
+ MaxSigned(_) => "MaxSigned",
+ MinUnsigned(_) => "MinUnsigned",
+ MaxUnsigned(_) => "MaxUnsigned",
CmpE(_) => "CmpE",
CmpNe(_) => "CmpNe",
CmpSlt(_) => "CmpSlt",
@@ -325,6 +334,7 @@ impl MediumLevelILLiftedInstruction {
Ctz(_) => "Ctz",
Rbit(_) => "Rbit",
Cls(_) => "Cls",
+ Abs(_) => "Abs",
Sx(_) => "Sx",
Zx(_) => "Zx",
LowPart(_) => "LowPart",
@@ -469,7 +479,8 @@ impl MediumLevelILLiftedInstruction {
],
Add(op) | Sub(op) | And(op) | Or(op) | Xor(op) | Lsl(op) | Lsr(op) | Asr(op)
| Rol(op) | Ror(op) | Mul(op) | MuluDp(op) | MulsDp(op) | Divu(op) | DivuDp(op)
- | Divs(op) | DivsDp(op) | Modu(op) | ModuDp(op) | Mods(op) | ModsDp(op) | CmpE(op)
+ | Divs(op) | DivsDp(op) | Modu(op) | ModuDp(op) | Mods(op) | ModsDp(op)
+ | MinSigned(op) | MaxSigned(op) | MinUnsigned(op) | MaxUnsigned(op) | CmpE(op)
| CmpNe(op) | CmpSlt(op) | CmpUlt(op) | CmpSle(op) | CmpUle(op) | CmpSge(op)
| CmpUge(op) | CmpSgt(op) | CmpUgt(op) | TestBit(op) | AddOverflow(op) | FcmpE(op)
| FcmpNe(op) | FcmpLt(op) | FcmpLe(op) | FcmpGe(op) | FcmpGt(op) | FcmpO(op)
@@ -555,7 +566,7 @@ impl MediumLevelILLiftedInstruction {
("stack", Operand::Expr(*op.stack.clone())),
],
Neg(op) | Not(op) | Bswap(op) | Popcnt(op) | Clz(op) | Ctz(op) | Rbit(op) | Cls(op)
- | Sx(op) | Zx(op) | LowPart(op) | BoolToInt(op) | UnimplMem(op)
+ | Abs(op) | Sx(op) | Zx(op) | LowPart(op) | BoolToInt(op) | UnimplMem(op)
| Fsqrt(op) | Fneg(op) | Fabs(op) | FloatToInt(op) | IntToFloat(op) | FloatConv(op)
| RoundToInt(op) | Floor(op) | Ceil(op) | Ftrunc(op) | Load(op) => {
vec![("src", Operand::Expr(*op.src.clone()))]