summaryrefslogtreecommitdiff
path: root/lowlevelil.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-10-03 23:07:48 -0400
committerRusty Wagner <rusty@vector35.com>2017-10-06 17:28:35 -0400
commit95a7be141a07a20b8465981b01116fcafb6b5f41 (patch)
treee64cf2b30fe37eedf67d8d6111f240295992b020 /lowlevelil.cpp
parent1c6f11277096534479c958b6d9fc5265d318ca2a (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];