Преглед изворни кода

Fix tailcall case in EmitterContext (#1235)

Ficture Seven пре 6 година
родитељ
комит
4b79b78b8c
1 измењених фајлова са 4 додато и 9 уклоњено
  1. 4 9
      ARMeilleure/Translation/EmitterContext.cs

+ 4 - 9
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()