aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Decoders/OpCodeT16MemStack.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/Decoders/OpCodeT16MemStack.cs
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'ARMeilleure/Decoders/OpCodeT16MemStack.cs')
-rw-r--r--ARMeilleure/Decoders/OpCodeT16MemStack.cs42
1 files changed, 0 insertions, 42 deletions
diff --git a/ARMeilleure/Decoders/OpCodeT16MemStack.cs b/ARMeilleure/Decoders/OpCodeT16MemStack.cs
deleted file mode 100644
index 9d7b0d20..00000000
--- a/ARMeilleure/Decoders/OpCodeT16MemStack.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using ARMeilleure.Instructions;
-using ARMeilleure.State;
-using System;
-using System.Numerics;
-
-namespace ARMeilleure.Decoders
-{
- class OpCodeT16MemStack : OpCodeT16, IOpCode32MemMult
- {
- public int Rn => RegisterAlias.Aarch32Sp;
- public int RegisterMask { get; }
- public int PostOffset { get; }
- public bool IsLoad { get; }
- public int Offset { get; }
-
- public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeT16MemStack(inst, address, opCode);
-
- public OpCodeT16MemStack(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
- {
- int extra = (opCode >> 8) & 1;
- int regCount = BitOperations.PopCount((uint)opCode & 0x1ff);
-
- switch (inst.Name)
- {
- case InstName.Push:
- RegisterMask = (opCode & 0xff) | (extra << 14);
- IsLoad = false;
- Offset = -4 * regCount;
- PostOffset = -4 * regCount;
- break;
- case InstName.Pop:
- RegisterMask = (opCode & 0xff) | (extra << 15);
- IsLoad = true;
- Offset = 0;
- PostOffset = 4 * regCount;
- break;
- default:
- throw new InvalidOperationException();
- }
- }
- }
-}