diff options
author | Ficture Seven <FICTURE7@gmail.com> | 2020-05-11 04:04:52 +0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-11 10:04:52 +1000 |
commit | 4b79b78b8c3b9cd6deed46e6aa38acabfc47d25b (patch) | |
tree | 99daef011805ab36a5895b7cb922f2942077688f /ARMeilleure/Translation/EmitterContext.cs | |
parent | 492bb6ee5ff7d5eb1c24d569cdb71da04cba15cd (diff) |
Fix tailcall case in EmitterContext (#1235)
Diffstat (limited to 'ARMeilleure/Translation/EmitterContext.cs')
-rw-r--r-- | ARMeilleure/Translation/EmitterContext.cs | 13 |
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() |