aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Translation/EmitterContext.cs
diff options
context:
space:
mode:
authorFicture Seven <FICTURE7@gmail.com>2020-05-11 04:04:52 +0400
committerGitHub <noreply@github.com>2020-05-11 10:04:52 +1000
commit4b79b78b8c3b9cd6deed46e6aa38acabfc47d25b (patch)
tree99daef011805ab36a5895b7cb922f2942077688f /ARMeilleure/Translation/EmitterContext.cs
parent492bb6ee5ff7d5eb1c24d569cdb71da04cba15cd (diff)
Fix tailcall case in EmitterContext (#1235)
Diffstat (limited to 'ARMeilleure/Translation/EmitterContext.cs')
-rw-r--r--ARMeilleure/Translation/EmitterContext.cs13
1 files changed, 4 insertions, 9 deletions
diff --git a/ARMeilleure/Translation/EmitterContext.cs b/ARMeilleure/Translation/EmitterContext.cs
index 7abda1a7..2195830c 100644
--- a/ARMeilleure/Translation/EmitterContext.cs
+++ b/ARMeilleure/Translation/EmitterContext.cs
@@ -609,15 +609,10 @@ namespace ARMeilleure.Translation
private static bool EndsWithUnconditional(BasicBlock block)
{
- Operation lastOp = block.GetLastOp() as Operation;
-
- if (lastOp == null)
- {
- return false;
- }
-
- return lastOp.Instruction == Instruction.Branch ||
- lastOp.Instruction == Instruction.Return;
+ return block.Operations.Last is Operation lastOp &&
+ (lastOp.Instruction == Instruction.Branch ||
+ lastOp.Instruction == Instruction.Return ||
+ lastOp.Instruction == Instruction.Tailcall);
}
public ControlFlowGraph GetControlFlowGraph()