summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-02-09 17:17:53 -0500
committerRusty Wagner <rusty@vector35.com>2018-02-09 17:17:53 -0500
commit79b5bdcf42f6abf1c8b2c4bda4c30b41319c4aa5 (patch)
tree7d20b2c03b44ccd65eff337a72fd700c075b42d5 /binaryninjaapi.h
parent83c9c2bceeb354dcf53e338e9411c6636f418123 (diff)
Add instructions for tracking freed register stack slots
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index d7535184..187740b9 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -2572,10 +2572,17 @@ namespace BinaryNinja
const ILSourceLocation& loc = ILSourceLocation());
ExprId RegisterStackPop(size_t size, uint32_t regStack, uint32_t flags = 0,
const ILSourceLocation& loc = ILSourceLocation());
+ ExprId RegisterStackFreeReg(uint32_t reg, const ILSourceLocation& loc = ILSourceLocation());
+ ExprId RegisterStackFreeTopRelative(uint32_t regStack, ExprId entry,
+ const ILSourceLocation& loc = ILSourceLocation());
ExprId RegisterStackTopRelativeSSA(size_t size, const SSARegisterStack& regStack, ExprId entry,
const SSARegister& top, const ILSourceLocation& loc = ILSourceLocation());
ExprId RegisterStackAbsoluteSSA(size_t size, const SSARegisterStack& regStack, uint32_t reg,
const ILSourceLocation& loc = ILSourceLocation());
+ ExprId RegisterStackFreeTopRelativeSSA(uint32_t regStack, size_t destVersion, size_t srcVersion,
+ ExprId entry, const SSARegister& top, const ILSourceLocation& loc = ILSourceLocation());
+ ExprId RegisterStackFreeAbsoluteSSA(uint32_t regStack, size_t destVersion, size_t srcVersion,
+ uint32_t reg, const ILSourceLocation& loc = ILSourceLocation());
ExprId Const(size_t size, uint64_t val, const ILSourceLocation& loc = ILSourceLocation());
ExprId ConstPointer(size_t size, uint64_t val, const ILSourceLocation& loc = ILSourceLocation());
ExprId FloatConstRaw(size_t size, uint64_t val, const ILSourceLocation& loc = ILSourceLocation());
@@ -3013,6 +3020,9 @@ namespace BinaryNinja
const std::vector<ExprId>& params, const ILSourceLocation& loc = ILSourceLocation());
ExprId IntrinsicSSA(const std::vector<SSAVariable>& outputs, uint32_t intrinsic,
const std::vector<ExprId>& params, const ILSourceLocation& loc = ILSourceLocation());
+ ExprId FreeVarSlot(const Variable& var, const ILSourceLocation& loc = ILSourceLocation());
+ ExprId FreeVarSlotSSA(const Variable& var, size_t newVersion, size_t prevVersion,
+ const ILSourceLocation& loc = ILSourceLocation());
ExprId Undefined(const ILSourceLocation& loc = ILSourceLocation());
ExprId Unimplemented(const ILSourceLocation& loc = ILSourceLocation());
ExprId UnimplementedMemoryRef(size_t size, ExprId target,