diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/highlevelil.py | 38 | ||||
| -rw-r--r-- | python/lowlevelil.py | 38 | ||||
| -rw-r--r-- | python/mediumlevelil.py | 38 |
3 files changed, 111 insertions, 3 deletions
diff --git a/python/highlevelil.py b/python/highlevelil.py index bbeb0186..f990467c 100644 --- a/python/highlevelil.py +++ b/python/highlevelil.py @@ -254,7 +254,13 @@ class HighLevelILInstruction(BaseILInstruction): ("src", "expr") ], HighLevelILOperation.HLIL_CTZ: [("src", "expr")], HighLevelILOperation.HLIL_RBIT: [ ("src", "expr") - ], HighLevelILOperation.HLIL_CLS: [("src", "expr")], HighLevelILOperation.HLIL_SX: [ + ], HighLevelILOperation.HLIL_CLS: [("src", "expr")], HighLevelILOperation.HLIL_MINS: [ + ("left", "expr"), ("right", "expr") + ], HighLevelILOperation.HLIL_MAXS: [("left", "expr"), ("right", "expr")], HighLevelILOperation.HLIL_MINU: [ + ("left", "expr"), ("right", "expr") + ], HighLevelILOperation.HLIL_MAXU: [("left", "expr"), ("right", "expr")], HighLevelILOperation.HLIL_ABS: [ + ("src", "expr") + ], HighLevelILOperation.HLIL_SX: [ ("src", "expr") ], HighLevelILOperation.HLIL_ZX: [("src", "expr")], HighLevelILOperation.HLIL_LOW_PART: [ ("src", "expr") @@ -2020,6 +2026,31 @@ class HighLevelILCls(HighLevelILUnaryBase, Arithmetic): @dataclass(frozen=True, repr=False, eq=False) +class HighLevelILMins(HighLevelILBinaryBase, Arithmetic, Signed): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class HighLevelILMaxs(HighLevelILBinaryBase, Arithmetic, Signed): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class HighLevelILMinu(HighLevelILBinaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class HighLevelILMaxu(HighLevelILBinaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class HighLevelILAbs(HighLevelILUnaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) class HighLevelILSx(HighLevelILUnaryBase, Arithmetic): pass @@ -2520,6 +2551,11 @@ ILInstruction = { HighLevelILOperation.HLIL_CTZ: HighLevelILCtz, # ("src", "expr"), HighLevelILOperation.HLIL_RBIT: HighLevelILRbit, # ("src", "expr"), HighLevelILOperation.HLIL_CLS: HighLevelILCls, # ("src", "expr"), + HighLevelILOperation.HLIL_MINS: HighLevelILMins, # ("left", "expr"), ("right", "expr"), + HighLevelILOperation.HLIL_MAXS: HighLevelILMaxs, # ("left", "expr"), ("right", "expr"), + HighLevelILOperation.HLIL_MINU: HighLevelILMinu, # ("left", "expr"), ("right", "expr"), + HighLevelILOperation.HLIL_MAXU: HighLevelILMaxu, # ("left", "expr"), ("right", "expr"), + HighLevelILOperation.HLIL_ABS: HighLevelILAbs, # ("src", "expr"), HighLevelILOperation.HLIL_SX: HighLevelILSx, # ("src", "expr"), HighLevelILOperation.HLIL_ZX: HighLevelILZx, # ("src", "expr"), HighLevelILOperation.HLIL_LOW_PART: HighLevelILLowPart, # ("src", "expr"), diff --git a/python/lowlevelil.py b/python/lowlevelil.py index ce9770f2..9f601fd4 100644 --- a/python/lowlevelil.py +++ b/python/lowlevelil.py @@ -383,7 +383,13 @@ class LowLevelILInstruction(BaseILInstruction): ("src", "expr") ], LowLevelILOperation.LLIL_CTZ: [("src", "expr")], LowLevelILOperation.LLIL_RBIT: [ ("src", "expr") - ], LowLevelILOperation.LLIL_CLS: [("src", "expr")], LowLevelILOperation.LLIL_SX: [ + ], LowLevelILOperation.LLIL_CLS: [("src", "expr")], LowLevelILOperation.LLIL_MINS: [ + ("left", "expr"), ("right", "expr") + ], LowLevelILOperation.LLIL_MAXS: [("left", "expr"), ("right", "expr")], LowLevelILOperation.LLIL_MINU: [ + ("left", "expr"), ("right", "expr") + ], LowLevelILOperation.LLIL_MAXU: [("left", "expr"), ("right", "expr")], LowLevelILOperation.LLIL_ABS: [ + ("src", "expr") + ], LowLevelILOperation.LLIL_SX: [ ("src", "expr") ], LowLevelILOperation.LLIL_ZX: [("src", "expr")], LowLevelILOperation.LLIL_LOW_PART: [ ("src", "expr") @@ -1399,6 +1405,31 @@ class LowLevelILCls(LowLevelILUnaryBase, Arithmetic): @dataclass(frozen=True, repr=False, eq=False) +class LowLevelILMins(LowLevelILBinaryBase, Arithmetic, Signed): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class LowLevelILMaxs(LowLevelILBinaryBase, Arithmetic, Signed): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class LowLevelILMinu(LowLevelILBinaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class LowLevelILMaxu(LowLevelILBinaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) +class LowLevelILAbs(LowLevelILUnaryBase, Arithmetic): + pass + + +@dataclass(frozen=True, repr=False, eq=False) class LowLevelILSx(LowLevelILUnaryBase, Arithmetic): pass @@ -3174,6 +3205,11 @@ ILInstruction:Dict[LowLevelILOperation, LowLevelILInstruction] = { # type: igno LowLevelILOperation.LLIL_CTZ: LowLevelILCtz, # [("src", "expr")], LowLevelILOperation.LLIL_RBIT: LowLevelILRbit, # [("src", "expr")], LowLevelILOperation.LLIL_CLS: LowLevelILCls, # [("src", "expr")], + LowLevelILOperation.LLIL_MINS: LowLevelILMins, # [("left", "expr"), ("right", "expr")], + LowLevelILOperation.LLIL_MAXS: LowLevelILMaxs, # [("left", "expr"), ("right", "expr")], + LowLevelILOperation.LLIL_MINU: LowLevelILMinu, # [("left", "expr"), ("right", "expr")], + LowLevelILOperation.LLIL_MAXU: LowLevelILMaxu, # [("left", "expr"), ("right", "expr")], + LowLevelILOperation.LLIL_ABS: LowLevelILAbs, # [("src", "expr")], LowLevelILOperation.LLIL_SX: LowLevelILSx, # [("src", "expr")], LowLevelILOperation.LLIL_ZX: LowLevelILZx, # [("src", "expr")], LowLevelILOperation.LLIL_LOW_PART: LowLevelILLowPart, # [("src", "expr")], 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")], |
