diff options
| author | Mark Rowe <mark@vector35.com> | 2026-06-04 16:36:52 -0700 |
|---|---|---|
| committer | Mark Rowe <mark@vector35.com> | 2026-06-05 13:01:46 -0700 |
| commit | fde1241ce928d38c2031c827ae0ddee5c6f5af0f (patch) | |
| tree | 6711a47863332712eb5324e2c3ef1dffb843bb5d /python/mediumlevelil.py | |
| parent | fa09f36b5f47ed690dc029fe9f1ed9ad4ebce7c8 (diff) | |
Add abs, min, and max instructions
Diffstat (limited to 'python/mediumlevelil.py')
| -rw-r--r-- | python/mediumlevelil.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py index 15db8ae1..018a817f 100644 --- a/python/mediumlevelil.py +++ b/python/mediumlevelil.py @@ -271,7 +271,13 @@ class MediumLevelILInstruction(BaseILInstruction): ("src", "expr") ], MediumLevelILOperation.MLIL_CTZ: [("src", "expr")], MediumLevelILOperation.MLIL_RBIT: [ ("src", "expr") - ], MediumLevelILOperation.MLIL_CLS: [("src", "expr")], MediumLevelILOperation.MLIL_SX: [ + ], MediumLevelILOperation.MLIL_CLS: [("src", "expr")], MediumLevelILOperation.MLIL_MINS: [ + ("left", "expr"), ("right", "expr") + ], MediumLevelILOperation.MLIL_MAXS: [("left", "expr"), ("right", "expr")], MediumLevelILOperation.MLIL_MINU: [ + ("left", "expr"), ("right", "expr") + ], MediumLevelILOperation.MLIL_MAXU: [("left", "expr"), ("right", "expr")], MediumLevelILOperation.MLIL_ABS: [ + ("src", "expr") + ], MediumLevelILOperation.MLIL_SX: [ ("src", "expr") ], MediumLevelILOperation.MLIL_ZX: [("src", "expr")], MediumLevelILOperation.MLIL_LOW_PART: [ ("src", "expr") @@ -1471,6 +1477,31 @@ class MediumLevelILCls(MediumLevelILUnaryBase, Arithmetic): @dataclass(frozen=True, repr=False, eq=False) +class MediumLevelILMins(MediumLevelILBinaryBase, Arithmetic, Signed): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class MediumLevelILMaxs(MediumLevelILBinaryBase, Arithmetic, Signed): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class MediumLevelILMinu(MediumLevelILBinaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class MediumLevelILMaxu(MediumLevelILBinaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class MediumLevelILAbs(MediumLevelILUnaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) class MediumLevelILSx(MediumLevelILUnaryBase, Arithmetic): pass @@ -3486,6 +3517,11 @@ ILInstruction = { MediumLevelILOperation.MLIL_CTZ: MediumLevelILCtz, # [("src", "expr")], MediumLevelILOperation.MLIL_RBIT: MediumLevelILRbit, # [("src", "expr")], MediumLevelILOperation.MLIL_CLS: MediumLevelILCls, # [("src", "expr")], + MediumLevelILOperation.MLIL_MINS: MediumLevelILMins, # [("left", "expr"), ("right", "expr")], + MediumLevelILOperation.MLIL_MAXS: MediumLevelILMaxs, # [("left", "expr"), ("right", "expr")], + MediumLevelILOperation.MLIL_MINU: MediumLevelILMinu, # [("left", "expr"), ("right", "expr")], + MediumLevelILOperation.MLIL_MAXU: MediumLevelILMaxu, # [("left", "expr"), ("right", "expr")], + MediumLevelILOperation.MLIL_ABS: MediumLevelILAbs, # [("src", "expr")], MediumLevelILOperation.MLIL_SX: MediumLevelILSx, # [("src", "expr")], MediumLevelILOperation.MLIL_ZX: MediumLevelILZx, # [("src", "expr")], MediumLevelILOperation.MLIL_LOW_PART: MediumLevelILLowPart, # [("src", "expr")], |
