summaryrefslogtreecommitdiff
path: root/lowlevelil.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-10-03 23:07:48 -0400
committerPeter LaFosse <peter@vector35.com>2018-03-23 17:10:05 -0400
commitceab7825606b37d1dc142f73931660c9600b340d (patch)
treeccdf6ce16485d20e9b71249db7e0c8d57542992a /lowlevelil.cpp
parentc7e9bb6b63e96a6cc779f3f1f64556ebe71b9bfb (diff)
Adding support for register stacks in IL (for x87)
Diffstat (limited to 'lowlevelil.cpp')
-rw-r--r--lowlevelil.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/lowlevelil.cpp b/lowlevelil.cpp
index 690f0b41..c72d4b68 100644
--- a/lowlevelil.cpp
+++ b/lowlevelil.cpp
@@ -230,6 +230,20 @@ ExprId LowLevelILFunction::AddSSARegisterList(const vector<SSARegister>& regs)
}
+ExprId LowLevelILFunction::AddSSARegisterStackList(const vector<SSARegisterStack>& regStacks)
+{
+ uint64_t* operandList = new uint64_t[regStacks.size() * 2];
+ for (size_t i = 0; i < regStacks.size(); i++)
+ {
+ operandList[i * 2] = regStacks[i].regStack;
+ operandList[(i * 2) + 1] = regStacks[i].version;
+ }
+ ExprId result = (ExprId)BNLowLevelILAddOperandList(m_object, operandList, regStacks.size() * 2);
+ delete[] operandList;
+ return result;
+}
+
+
ExprId LowLevelILFunction::AddSSAFlagList(const vector<SSAFlag>& flags)
{
uint64_t* operandList = new uint64_t[flags.size() * 2];