summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-05-04 19:28:27 -0400
committerRusty Wagner <rusty@vector35.com>2017-05-04 19:28:27 -0400
commit7cc163fa72b3ea342a9b061ae8988887edbf198f (patch)
tree2803aaffa080a3e63b36d659bbeb8052b5a4cdf6 /binaryninjaapi.h
parent26c8f70fd837baec98bcf2aac89ae658c5590013 (diff)
Initial support for concrete flags computation
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index a179a810..068653b3 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1440,9 +1440,10 @@ namespace BinaryNinja
virtual std::vector<uint32_t> GetFlagsWrittenByFlagWriteType(uint32_t writeType);
virtual ExprId GetFlagWriteLowLevelIL(BNLowLevelILOperation op, size_t size, uint32_t flagWriteType,
uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount, LowLevelILFunction& il);
- ExprId GetDefaultFlagWriteLowLevelIL(BNLowLevelILOperation op, size_t size, uint32_t flagWriteType,
- uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount, LowLevelILFunction& il);
+ ExprId GetDefaultFlagWriteLowLevelIL(BNLowLevelILOperation op, size_t size, BNFlagRole role,
+ BNRegisterOrConstant* operands, size_t operandCount, LowLevelILFunction& il);
virtual ExprId GetFlagConditionLowLevelIL(BNLowLevelILFlagCondition cond, LowLevelILFunction& il);
+ ExprId GetDefaultFlagConditionLowLevelIL(BNLowLevelILFlagCondition cond, LowLevelILFunction& il);
virtual BNRegisterInfo GetRegisterInfo(uint32_t reg);
virtual uint32_t GetStackPointerRegister();
virtual uint32_t GetLinkRegister();
@@ -2179,6 +2180,11 @@ namespace BinaryNinja
ExprId AddLabelList(const std::vector<BNLowLevelILLabel*>& labels);
ExprId AddOperandList(const std::vector<ExprId> operands);
+ ExprId GetExprForRegisterOrConstant(const BNRegisterOrConstant& operand, size_t size);
+ ExprId GetNegExprForRegisterOrConstant(const BNRegisterOrConstant& operand, size_t size);
+ ExprId GetExprForRegisterOrConstantOperation(BNLowLevelILOperation op, size_t size,
+ BNRegisterOrConstant* operands, size_t operandCount);
+
ExprId Operand(uint32_t n, ExprId expr);
BNLowLevelILInstruction operator[](size_t i) const;