From cee712105850ac3385cd0091a923438167433f9f Mon Sep 17 00:00:00 2001 From: TSR Berry <20988865+TSRBerry@users.noreply.github.com> Date: Sat, 8 Apr 2023 01:22:00 +0200 Subject: Move solution and projects to src --- Spv.Generator/InstructionOperands.cs | 72 ------------------------------------ 1 file changed, 72 deletions(-) delete mode 100644 Spv.Generator/InstructionOperands.cs (limited to 'Spv.Generator/InstructionOperands.cs') diff --git a/Spv.Generator/InstructionOperands.cs b/Spv.Generator/InstructionOperands.cs deleted file mode 100644 index c48b004f..00000000 --- a/Spv.Generator/InstructionOperands.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; - -namespace Spv.Generator -{ - public struct InstructionOperands - { - private const int InternalCount = 5; - - public int Count; - public Operand Operand1; - public Operand Operand2; - public Operand Operand3; - public Operand Operand4; - public Operand Operand5; - public Operand[] Overflow; - - public Span AsSpan() - { - if (Count > InternalCount) - { - return MemoryMarshal.CreateSpan(ref this.Overflow[0], Count); - } - else - { - return MemoryMarshal.CreateSpan(ref this.Operand1, Count); - } - } - - public void Add(Operand operand) - { - if (Count < InternalCount) - { - MemoryMarshal.CreateSpan(ref this.Operand1, Count + 1)[Count] = operand; - Count++; - } - else - { - if (Overflow == null) - { - Overflow = new Operand[InternalCount * 2]; - MemoryMarshal.CreateSpan(ref this.Operand1, InternalCount).CopyTo(Overflow.AsSpan()); - } - else if (Count == Overflow.Length) - { - Array.Resize(ref Overflow, Overflow.Length * 2); - } - - Overflow[Count++] = operand; - } - } - - private IEnumerable AllOperands => new[] { Operand1, Operand2, Operand3, Operand4, Operand5 } - .Concat(Overflow ?? Array.Empty()) - .Take(Count); - - public override string ToString() - { - return $"({string.Join(", ", AllOperands)})"; - } - - public string ToString(string[] labels) - { - var labeledParams = AllOperands.Zip(labels, (op, label) => $"{label}: {op}"); - var unlabeledParams = AllOperands.Skip(labels.Length).Select(op => op.ToString()); - var paramsToPrint = labeledParams.Concat(unlabeledParams); - return $"({string.Join(", ", paramsToPrint)})"; - } - } -} -- cgit v1.2.3