summaryrefslogtreecommitdiff
path: root/mediumlevelilinstruction.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-09-05 14:39:46 -0400
committerRusty Wagner <rusty@vector35.com>2018-09-05 14:39:46 -0400
commitf4d75c9229d2d76f36f80e97dd49c7aece242600 (patch)
tree0390fc2b624149274c5c01b847d59698055a2974 /mediumlevelilinstruction.cpp
parentc02c863367ff88c1e562a1110e069bf2842798aa (diff)
parente51031010b107089dd7b5b69039ac42b856a0769 (diff)
Merge branch 'test_stack_adjust' into dev
Diffstat (limited to 'mediumlevelilinstruction.cpp')
-rw-r--r--mediumlevelilinstruction.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/mediumlevelilinstruction.cpp b/mediumlevelilinstruction.cpp
index 9cf82b08..93587c34 100644
--- a/mediumlevelilinstruction.cpp
+++ b/mediumlevelilinstruction.cpp
@@ -122,6 +122,7 @@ unordered_map<BNMediumLevelILOperation, vector<MediumLevelILOperandUsage>>
{MLIL_ADDRESS_OF_FIELD, {SourceVariableMediumLevelOperandUsage, OffsetMediumLevelOperandUsage}},
{MLIL_JUMP, {DestExprMediumLevelOperandUsage}},
{MLIL_JUMP_TO, {DestExprMediumLevelOperandUsage, TargetListMediumLevelOperandUsage}},
+ {MLIL_RET_HINT, {DestExprMediumLevelOperandUsage}},
{MLIL_CALL, {OutputVariablesMediumLevelOperandUsage, DestExprMediumLevelOperandUsage,
ParameterExprsMediumLevelOperandUsage}},
{MLIL_CALL_UNTYPED, {OutputVariablesSubExprMediumLevelOperandUsage, DestExprMediumLevelOperandUsage,
@@ -1322,6 +1323,7 @@ void MediumLevelILInstruction::VisitExprs(const std::function<bool(const MediumL
case MLIL_BOOL_TO_INT:
case MLIL_JUMP:
case MLIL_JUMP_TO:
+ case MLIL_RET_HINT:
case MLIL_IF:
case MLIL_UNIMPL_MEM:
case MLIL_LOAD:
@@ -1591,6 +1593,7 @@ ExprId MediumLevelILInstruction::CopyTo(MediumLevelILFunction* dest,
case MLIL_LOW_PART:
case MLIL_BOOL_TO_INT:
case MLIL_JUMP:
+ case MLIL_RET_HINT:
case MLIL_UNIMPL_MEM:
case MLIL_FSQRT:
case MLIL_FNEG:
@@ -2497,6 +2500,12 @@ ExprId MediumLevelILFunction::JumpTo(ExprId dest, const vector<BNMediumLevelILLa
}
+ExprId MediumLevelILFunction::ReturnHint(ExprId dest, const ILSourceLocation& loc)
+{
+ return AddExprWithLocation(MLIL_RET_HINT, loc, 0, dest);
+}
+
+
ExprId MediumLevelILFunction::Call(const vector<Variable>& output, ExprId dest,
const vector<ExprId>& params, const ILSourceLocation& loc)
{