summaryrefslogtreecommitdiff
path: root/lowlevelil.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-02-28 20:23:20 -0500
committerRusty Wagner <rusty@vector35.com>2017-02-28 20:23:20 -0500
commitdc0f16fa9bbac0388bb844af8d9f6c3b72ec31e8 (patch)
tree86b0cdf490ae31ec8b1f4a1887b22e33c9157230 /lowlevelil.cpp
parentafe6a3c1d97c1ac2fd3be04f710caa1424216edd (diff)
Map expressions to SSA form and add API to query expression value
Diffstat (limited to 'lowlevelil.cpp')
-rw-r--r--lowlevelil.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/lowlevelil.cpp b/lowlevelil.cpp
index 999e35ee..fecde9c8 100644
--- a/lowlevelil.cpp
+++ b/lowlevelil.cpp
@@ -671,7 +671,7 @@ Ref<LowLevelILFunction> LowLevelILFunction::GetNonSSAForm() const
size_t LowLevelILFunction::GetSSAInstructionIndex(size_t instr) const
{
- return BNGetLowLevelILNonSSAInstructionIndex(m_object, instr);
+ return BNGetLowLevelILSSAInstructionIndex(m_object, instr);
}
@@ -681,6 +681,18 @@ size_t LowLevelILFunction::GetNonSSAInstructionIndex(size_t instr) const
}
+size_t LowLevelILFunction::GetSSAExprIndex(size_t expr) const
+{
+ return BNGetLowLevelILSSAExprIndex(m_object, expr);
+}
+
+
+size_t LowLevelILFunction::GetNonSSAExprIndex(size_t expr) const
+{
+ return BNGetLowLevelILNonSSAExprIndex(m_object, expr);
+}
+
+
size_t LowLevelILFunction::GetSSARegisterDefinition(uint32_t reg, size_t idx) const
{
return BNGetLowLevelILSSARegisterDefinition(m_object, reg, idx);
@@ -760,3 +772,10 @@ RegisterValue LowLevelILFunction::GetSSAStackContents(size_t memoryIndex, int64_
BNRegisterValue value = BNGetLowLevelILSSAStackContents(m_object, memoryIndex, offset, size);
return RegisterValue::FromAPIObject(value);
}
+
+
+RegisterValue LowLevelILFunction::GetExprValue(size_t expr)
+{
+ BNRegisterValue value = BNGetLowLevelILExprValue(m_object, expr);
+ return RegisterValue::FromAPIObject(value);
+}