diff options
Diffstat (limited to 'ARMeilleure/CodeGen/X86/PreAllocator.cs')
| -rw-r--r-- | ARMeilleure/CodeGen/X86/PreAllocator.cs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ARMeilleure/CodeGen/X86/PreAllocator.cs b/ARMeilleure/CodeGen/X86/PreAllocator.cs index dc7f3a75..b76e9416 100644 --- a/ARMeilleure/CodeGen/X86/PreAllocator.cs +++ b/ARMeilleure/CodeGen/X86/PreAllocator.cs @@ -101,7 +101,7 @@ namespace ARMeilleure.CodeGen.X86 if (callConv == CallConvName.Windows) { HandleTailcallWindowsAbi(block.Operations, stackAlloc, node, operation); - } + } else { HandleTailcallSystemVAbi(block.Operations, stackAlloc, node, operation); @@ -207,6 +207,8 @@ namespace ARMeilleure.CodeGen.X86 switch (operation.Instruction) { case Instruction.CompareAndSwap: + case Instruction.CompareAndSwap16: + case Instruction.CompareAndSwap8: { OperandType type = operation.GetSource(1).Type; @@ -887,7 +889,7 @@ namespace ARMeilleure.CodeGen.X86 HandleConstantRegCopy(nodes, nodes.AddBefore(node, copyOp), copyOp); sources.Add(argReg); - } + } else { throw new NotImplementedException("Spilling is not currently supported for tail calls. (too many arguments)"); |
