summaryrefslogtreecommitdiff
path: root/highlevelilinstruction.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2019-07-30 18:21:15 -0400
committerRusty Wagner <rusty@vector35.com>2020-04-17 14:20:36 -0400
commit652dd72149b9c030e438d6de1a03ef54eafd8091 (patch)
tree17e798a8becf6c39d236f31111c136f13b4f49a3 /highlevelilinstruction.cpp
parent203717232e816d42973f05f1c9fbc950914d71dc (diff)
Add continue HLIL instruction
Diffstat (limited to 'highlevelilinstruction.cpp')
-rw-r--r--highlevelilinstruction.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/highlevelilinstruction.cpp b/highlevelilinstruction.cpp
index 311d4e93..a53d5fe4 100644
--- a/highlevelilinstruction.cpp
+++ b/highlevelilinstruction.cpp
@@ -71,6 +71,7 @@ unordered_map<BNHighLevelILOperation, vector<HighLevelILOperandUsage>>
HighLevelILInstructionBase::operationOperandUsage = {
{HLIL_NOP, {}},
{HLIL_BREAK, {}},
+ {HLIL_CONTINUE, {}},
{HLIL_NORET, {}},
{HLIL_BP, {}},
{HLIL_UNDEF, {}},
@@ -974,6 +975,8 @@ ExprId HighLevelILInstruction::CopyTo(HighLevelILFunction* dest,
subExprHandler(GetTrueExpr<HLIL_CASE>()), *this);
case HLIL_BREAK:
return dest->Break(*this);
+ case HLIL_CONTINUE:
+ return dest->Continue(*this);
case HLIL_ASSIGN:
return dest->Assign(size, subExprHandler(GetDestExpr<HLIL_ASSIGN>()),
subExprHandler(GetSourceExpr<HLIL_ASSIGN>()), *this);
@@ -1457,6 +1460,12 @@ ExprId HighLevelILFunction::Break(const ILSourceLocation& loc)
}
+ExprId HighLevelILFunction::Continue(const ILSourceLocation& loc)
+{
+ return AddExprWithLocation(HLIL_CONTINUE, loc, 0);
+}
+
+
ExprId HighLevelILFunction::Jump(ExprId dest, const ILSourceLocation& loc)
{
return AddExprWithLocation(HLIL_JUMP, loc, 0, dest);