aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/CodeGen/PreAllocatorCommon.cs
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /ARMeilleure/CodeGen/PreAllocatorCommon.cs
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'ARMeilleure/CodeGen/PreAllocatorCommon.cs')
-rw-r--r--ARMeilleure/CodeGen/PreAllocatorCommon.cs57
1 files changed, 0 insertions, 57 deletions
diff --git a/ARMeilleure/CodeGen/PreAllocatorCommon.cs b/ARMeilleure/CodeGen/PreAllocatorCommon.cs
deleted file mode 100644
index 53f279fb..00000000
--- a/ARMeilleure/CodeGen/PreAllocatorCommon.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using ARMeilleure.IntermediateRepresentation;
-using System;
-using static ARMeilleure.IntermediateRepresentation.Operand.Factory;
-
-namespace ARMeilleure.CodeGen
-{
- static class PreAllocatorCommon
- {
- public static void Propagate(ref Span<Operation> buffer, Operand dest, Operand value)
- {
- ReadOnlySpan<Operation> uses = dest.GetUses(ref buffer);
-
- foreach (Operation use in uses)
- {
- for (int srcIndex = 0; srcIndex < use.SourcesCount; srcIndex++)
- {
- Operand useSrc = use.GetSource(srcIndex);
-
- if (useSrc == dest)
- {
- use.SetSource(srcIndex, value);
- }
- else if (useSrc.Kind == OperandKind.Memory)
- {
- MemoryOperand memoryOp = useSrc.GetMemory();
-
- Operand baseAddr = memoryOp.BaseAddress;
- Operand index = memoryOp.Index;
- bool changed = false;
-
- if (baseAddr == dest)
- {
- baseAddr = value;
- changed = true;
- }
-
- if (index == dest)
- {
- index = value;
- changed = true;
- }
-
- if (changed)
- {
- use.SetSource(srcIndex, MemoryOp(
- useSrc.Type,
- baseAddr,
- index,
- memoryOp.Scale,
- memoryOp.Displacement));
- }
- }
- }
- }
- }
- }
-}