summaryrefslogtreecommitdiff
path: root/lowlevelilinstruction.h
diff options
context:
space:
mode:
Diffstat (limited to 'lowlevelilinstruction.h')
-rw-r--r--lowlevelilinstruction.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/lowlevelilinstruction.h b/lowlevelilinstruction.h
index 03688700..b2849d44 100644
--- a/lowlevelilinstruction.h
+++ b/lowlevelilinstruction.h
@@ -127,6 +127,7 @@ namespace BinaryNinja
LowSSARegisterLowLevelOperandUsage,
ConstantLowLevelOperandUsage,
VectorLowLevelOperandUsage,
+ StackAdjustmentLowLevelOperandUsage,
TargetLowLevelOperandUsage,
TrueTargetLowLevelOperandUsage,
FalseTargetLowLevelOperandUsage,
@@ -499,6 +500,7 @@ namespace BinaryNinja
template <BNLowLevelILOperation N> SSARegister GetLowSSARegister() const { return As<N>().GetLowSSARegister(); }
template <BNLowLevelILOperation N> int64_t GetConstant() const { return As<N>().GetConstant(); }
template <BNLowLevelILOperation N> int64_t GetVector() const { return As<N>().GetVector(); }
+ template <BNLowLevelILOperation N> size_t GetStackAdjustment() const { return As<N>().GetStackAdjustment(); }
template <BNLowLevelILOperation N> size_t GetTarget() const { return As<N>().GetTarget(); }
template <BNLowLevelILOperation N> size_t GetTrueTarget() const { return As<N>().GetTrueTarget(); }
template <BNLowLevelILOperation N> size_t GetFalseTarget() const { return As<N>().GetFalseTarget(); }
@@ -551,6 +553,7 @@ namespace BinaryNinja
SSARegister GetLowSSARegister() const;
int64_t GetConstant() const;
int64_t GetVector() const;
+ size_t GetStackAdjustment() const;
size_t GetTarget() const;
size_t GetTrueTarget() const;
size_t GetFalseTarget() const;
@@ -774,6 +777,11 @@ namespace BinaryNinja
{
LowLevelILInstruction GetDestExpr() const { return GetRawOperandAsExpr(0); }
};
+ template <> struct LowLevelILInstructionAccessor<LLIL_CALL_STACK_ADJUST>: public LowLevelILInstructionBase
+ {
+ LowLevelILInstruction GetDestExpr() const { return GetRawOperandAsExpr(0); }
+ size_t GetStackAdjustment() const { return (size_t)GetRawOperandAsInteger(1); }
+ };
template <> struct LowLevelILInstructionAccessor<LLIL_RET>: public LowLevelILInstructionBase
{
LowLevelILInstruction GetDestExpr() const { return GetRawOperandAsExpr(0); }