mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-03-14 20:50:18 +00:00
OpCodeTable: Minor cleanup
This commit is contained in:
parent
5c2e780d40
commit
1379f41d5d
1 changed files with 9 additions and 20 deletions
|
@ -1,5 +1,4 @@
|
||||||
using ARMeilleure.Instructions;
|
using ARMeilleure.Instructions;
|
||||||
using ARMeilleure.State;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
@ -29,9 +28,9 @@ namespace ARMeilleure.Decoders
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<InstInfo> AllInstA32 = new List<InstInfo>();
|
private static List<InstInfo> AllInstA32 = new();
|
||||||
private static List<InstInfo> AllInstT32 = new List<InstInfo>();
|
private static List<InstInfo> AllInstT32 = new();
|
||||||
private static List<InstInfo> AllInstA64 = new List<InstInfo>();
|
private static List<InstInfo> AllInstA64 = new();
|
||||||
|
|
||||||
private static InstInfo[][] InstA32FastLookup = new InstInfo[FastLookupSize][];
|
private static InstInfo[][] InstA32FastLookup = new InstInfo[FastLookupSize][];
|
||||||
private static InstInfo[][] InstT32FastLookup = new InstInfo[FastLookupSize][];
|
private static InstInfo[][] InstT32FastLookup = new InstInfo[FastLookupSize][];
|
||||||
|
@ -1011,20 +1010,20 @@ namespace ARMeilleure.Decoders
|
||||||
|
|
||||||
private static void SetA32(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp)
|
private static void SetA32(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp)
|
||||||
{
|
{
|
||||||
Set(encoding, ExecutionMode.Aarch32Arm, new InstDescriptor(name, emitter), makeOp);
|
Set(encoding, AllInstA32, new InstDescriptor(name, emitter), makeOp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SetT32(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp)
|
private static void SetT32(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp)
|
||||||
{
|
{
|
||||||
Set(encoding, ExecutionMode.Aarch32Thumb, new InstDescriptor(name, emitter), makeOp);
|
Set(encoding, AllInstT32, new InstDescriptor(name, emitter), makeOp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SetA64(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp)
|
private static void SetA64(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp)
|
||||||
{
|
{
|
||||||
Set(encoding, ExecutionMode.Aarch64, new InstDescriptor(name, emitter), makeOp);
|
Set(encoding, AllInstA64, new InstDescriptor(name, emitter), makeOp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Set(string encoding, ExecutionMode mode, InstDescriptor inst, MakeOp makeOp)
|
private static void Set(string encoding, List<InstInfo> list, InstDescriptor inst, MakeOp makeOp)
|
||||||
{
|
{
|
||||||
int bit = encoding.Length - 1;
|
int bit = encoding.Length - 1;
|
||||||
int value = 0;
|
int value = 0;
|
||||||
|
@ -1073,7 +1072,7 @@ namespace ARMeilleure.Decoders
|
||||||
|
|
||||||
if (xBits == 0)
|
if (xBits == 0)
|
||||||
{
|
{
|
||||||
InsertInst(new InstInfo(xMask, value, inst, makeOp), mode);
|
list.Add(new InstInfo(xMask, value, inst, makeOp));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1089,21 +1088,11 @@ namespace ARMeilleure.Decoders
|
||||||
|
|
||||||
if (mask != blacklisted)
|
if (mask != blacklisted)
|
||||||
{
|
{
|
||||||
InsertInst(new InstInfo(xMask, value | mask, inst, makeOp), mode);
|
list.Add(new InstInfo(xMask, value | mask, inst, makeOp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void InsertInst(InstInfo info, ExecutionMode mode)
|
|
||||||
{
|
|
||||||
switch (mode)
|
|
||||||
{
|
|
||||||
case ExecutionMode.Aarch32Arm: AllInstA32.Add(info); break;
|
|
||||||
case ExecutionMode.Aarch32Thumb: AllInstT32.Add(info); break;
|
|
||||||
case ExecutionMode.Aarch64: AllInstA64.Add(info); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static (InstDescriptor inst, MakeOp makeOp) GetInstA32(int opCode)
|
public static (InstDescriptor inst, MakeOp makeOp) GetInstA32(int opCode)
|
||||||
{
|
{
|
||||||
return GetInstFromList(InstA32FastLookup[ToFastLookupIndex(opCode)], opCode);
|
return GetInstFromList(InstA32FastLookup[ToFastLookupIndex(opCode)], opCode);
|
||||||
|
|
Loading…
Reference in a new issue