summaryrefslogtreecommitdiff
path: root/mediumlevelil.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-04-21 01:41:34 -0400
committerRusty Wagner <rusty@vector35.com>2017-04-21 01:41:34 -0400
commite673afe4b958b5f8f808ff8457d0664ccecce93a (patch)
tree99f8a50841a8266f72c78991c11234a6e876c838 /mediumlevelil.cpp
parentd50d190f297afcb9621b39eb1d351e9eae96271b (diff)
Using variable identifiers in MLIL
Diffstat (limited to 'mediumlevelil.cpp')
-rw-r--r--mediumlevelil.cpp129
1 files changed, 2 insertions, 127 deletions
diff --git a/mediumlevelil.cpp b/mediumlevelil.cpp
index 0b420a82..868f3f75 100644
--- a/mediumlevelil.cpp
+++ b/mediumlevelil.cpp
@@ -61,9 +61,9 @@ size_t MediumLevelILFunction::GetInstructionStart(Architecture* arch, uint64_t a
ExprId MediumLevelILFunction::AddExpr(BNMediumLevelILOperation operation, size_t size,
- ExprId a, ExprId b, ExprId c, ExprId d, ExprId e, ExprId f)
+ ExprId a, ExprId b, ExprId c, ExprId d, ExprId e)
{
- return BNMediumLevelILAddExpr(m_object, operation, size, a, b, c, d, e, f);
+ return BNMediumLevelILAddExpr(m_object, operation, size, a, b, c, d, e);
}
@@ -73,120 +73,6 @@ ExprId MediumLevelILFunction::AddInstruction(size_t expr)
}
-ExprId MediumLevelILFunction::SetVar(size_t size, const Variable& var, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage, src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarField(size_t size, const Variable& var, int64_t offset, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- offset, src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarSplit(size_t size, const Variable& high, const Variable& low, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_SPLIT, size, ((uint64_t)high.type << 32) | (uint64_t)high.index, high.storage,
- ((uint64_t)low.type << 32) | (uint64_t)low.index, low.storage, src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarSSA(size_t size, const Variable& var, size_t varIndex, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_SSA, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- varIndex, src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarFieldSSA(size_t size, const Variable& var, size_t varIndex,
- int64_t offset, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_SSA_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- varIndex, offset, src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarSplitSSA(size_t size, const Variable& high, size_t highIndex,
- const Variable& low, size_t lowIndex, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_SPLIT_SSA, size,
- AddExpr(MLIL_VAR_SPLIT_DEST_SSA, size, ((uint64_t)high.type << 32) | (uint64_t)high.index,
- high.storage, highIndex),
- AddExpr(MLIL_VAR_SPLIT_DEST_SSA, size, ((uint64_t)low.type << 32) | (uint64_t)low.index,
- low.storage, lowIndex), src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarAliased(size_t size, const Variable& var, size_t destIndex,
- size_t srcIndex, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_ALIASED, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- destIndex, srcIndex, src);
-}
-
-
-ExprId MediumLevelILFunction::SetVarFieldAliased(size_t size, const Variable& var, size_t destIndex,
- size_t srcIndex, int64_t offset, ExprId src)
-{
- return AddExpr(MLIL_SET_VAR_ALIASED_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- destIndex, srcIndex, offset, src);
-}
-
-
-ExprId MediumLevelILFunction::Var(size_t size, const Variable& var)
-{
- return AddExpr(MLIL_VAR, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage);
-}
-
-
-ExprId MediumLevelILFunction::VarField(size_t size, const Variable& var, int64_t offset)
-{
- return AddExpr(MLIL_VAR_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage, offset);
-}
-
-
-ExprId MediumLevelILFunction::VarSSA(size_t size, const Variable& var, size_t varIndex)
-{
- return AddExpr(MLIL_VAR_SSA, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage, varIndex);
-}
-
-
-ExprId MediumLevelILFunction::VarFieldSSA(size_t size, const Variable& var, int64_t offset,
- size_t varIndex)
-{
- return AddExpr(MLIL_VAR_SSA_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- offset, varIndex);
-}
-
-
-ExprId MediumLevelILFunction::VarAliased(size_t size, const Variable& var, size_t memIndex)
-{
- return AddExpr(MLIL_VAR_ALIASED, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage, memIndex);
-}
-
-
-ExprId MediumLevelILFunction::VarFieldAliased(size_t size, const Variable& var, int64_t offset, size_t memIndex)
-{
- return AddExpr(MLIL_VAR_ALIASED_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage,
- offset, memIndex);
-}
-
-
-ExprId MediumLevelILFunction::AddressOf(size_t size, const Variable& var)
-{
- return AddExpr(MLIL_ADDRESS_OF, size, ((uint64_t)var.type << 32) | (uint64_t)var.index, var.storage);
-}
-
-
-ExprId MediumLevelILFunction::AddressOfField(size_t size, const Variable& var, int64_t offset)
-{
- return AddExpr(MLIL_ADDRESS_OF_FIELD, size, ((uint64_t)var.type << 32) | (uint64_t)var.index,
- var.storage, offset);
-}
-
-
ExprId MediumLevelILFunction::Goto(BNMediumLevelILLabel& label)
{
return BNMediumLevelILGoto(m_object, &label);
@@ -239,17 +125,6 @@ ExprId MediumLevelILFunction::AddOperandList(const vector<ExprId> operands)
}
-Variable MediumLevelILFunction::GetVariable(ExprId i, size_t varOperand)
-{
- BNMediumLevelILInstruction instr = (*this)[i];
- Variable result;
- result.type = (BNVariableSourceType)(instr.operands[varOperand] >> 32);
- result.index = (uint32_t)instr.operands[varOperand];
- result.storage = instr.operands[varOperand + 1];
- return result;
-}
-
-
BNMediumLevelILInstruction MediumLevelILFunction::operator[](size_t i) const
{
return BNGetMediumLevelILByIndex(m_object, i);