diff --git a/src/Ryujinx.Cpu/AddressTable.cs b/src/Ryujinx.Cpu/AddressTable.cs index 5dc72a7c8..3310f7ddd 100644 --- a/src/Ryujinx.Cpu/AddressTable.cs +++ b/src/Ryujinx.Cpu/AddressTable.cs @@ -164,7 +164,7 @@ namespace ARMeilleure.Common _fillBottomLevel = new SparseMemoryBlock(bottomLevelSize, null, _sparseFill); _fillBottomLevelPtr = (TEntry*)_fillBottomLevel.Block.Pointer; - _sparseReserved = new List(); + _sparseReserved = []; _sparseLock = new ReaderWriterLockSlim(); _sparseBlockSize = bottomLevelSize; diff --git a/src/Ryujinx.Cpu/Jit/HostTracked/AddressSpacePartitioned.cs b/src/Ryujinx.Cpu/Jit/HostTracked/AddressSpacePartitioned.cs index e3cb75f64..1cfb37258 100644 --- a/src/Ryujinx.Cpu/Jit/HostTracked/AddressSpacePartitioned.cs +++ b/src/Ryujinx.Cpu/Jit/HostTracked/AddressSpacePartitioned.cs @@ -21,7 +21,7 @@ namespace Ryujinx.Cpu.Jit.HostTracked public AddressSpacePartitioned(MemoryTracking tracking, MemoryBlock backingMemory, NativePageTable nativePageTable, bool useProtectionMirrors) { _backingMemory = backingMemory; - _partitions = new(); + _partitions = []; _asAllocator = new(tracking, nativePageTable.Read, _partitions); _updatePtCallback = nativePageTable.Update; _useProtectionMirrors = useProtectionMirrors; diff --git a/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs b/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs index 308e5f0d2..e27a2e173 100644 --- a/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs +++ b/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs @@ -340,7 +340,7 @@ namespace Ryujinx.Cpu.Jit { int pages = GetPagesCount(va, (uint)size, out va); - List regions = new(); + List regions = []; ulong regionStart = GetPhysicalAddressChecked(va); ulong regionSize = PageSize; diff --git a/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs b/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs index 98b00ca0b..c2f7d3f4b 100644 --- a/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs +++ b/src/Ryujinx.Cpu/Jit/MemoryManagerHostTracked.cs @@ -443,7 +443,7 @@ namespace Ryujinx.Cpu.Jit return null; } - List regions = new(); + List regions = []; ulong endVa = va + size; try diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/CodeGenContext.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/CodeGenContext.cs index f55e2bb99..d0490a8a6 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm32/CodeGenContext.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm32/CodeGenContext.cs @@ -36,7 +36,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 RegisterAllocator = registerAllocator; MemoryManagerType = mmType; _itConditions = new ArmCondition[4]; - _pendingBranches = new(); + _pendingBranches = []; IsThumb = isThumb; } diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/Decoder.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/Decoder.cs index 8a2b389ad..1add34f89 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm32/Decoder.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm32/Decoder.cs @@ -10,8 +10,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 { public static MultiBlock DecodeMulti(CpuPreset cpuPreset, IMemoryManager memoryManager, ulong address, bool isThumb) { - List blocks = new(); - List branchTargets = new(); + List blocks = []; + List branchTargets = []; while (true) { @@ -202,7 +202,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 { ulong startAddress = address; - List insts = new(); + List insts = []; uint encoding; InstMeta meta; diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableA32.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableA32.cs index 2168c0b9f..5a6a3c194 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableA32.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableA32.cs @@ -9,494 +9,494 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 static InstTableA32() { - InstEncoding[] condConstraints = new InstEncoding[] - { - new(0xF0000000, 0xF0000000), - }; + InstEncoding[] condConstraints = + [ + new(0xF0000000, 0xF0000000) + ]; - InstEncoding[] condRnsRnConstraints = new InstEncoding[] - { + InstEncoding[] condRnsRnConstraints = + [ new(0xF0000000, 0xF0000000), new(0x000F0000, 0x001F0000), - new(0x000D0000, 0x000F0000), - }; + new(0x000D0000, 0x000F0000) + ]; - InstEncoding[] condRnConstraints = new InstEncoding[] - { + InstEncoding[] condRnConstraints = + [ new(0xF0000000, 0xF0000000), - new(0x000D0000, 0x000F0000), - }; + new(0x000D0000, 0x000F0000) + ]; - InstEncoding[] vdVmConstraints = new InstEncoding[] - { + InstEncoding[] vdVmConstraints = + [ new(0x00001000, 0x00001000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] condRnConstraints2 = new InstEncoding[] - { + InstEncoding[] condRnConstraints2 = + [ new(0xF0000000, 0xF0000000), - new(0x0000000F, 0x0000000F), - }; + new(0x0000000F, 0x0000000F) + ]; - InstEncoding[] optionConstraints = new InstEncoding[] - { - new(0x00000000, 0x0000000F), - }; + InstEncoding[] optionConstraints = + [ + new(0x00000000, 0x0000000F) + ]; - InstEncoding[] condPuwPwPuwPuwConstraints = new InstEncoding[] - { + InstEncoding[] condPuwPwPuwPuwConstraints = + [ new(0xF0000000, 0xF0000000), new(0x00000000, 0x01A00000), new(0x01000000, 0x01200000), new(0x00200000, 0x01A00000), - new(0x01A00000, 0x01A00000), - }; + new(0x01A00000, 0x01A00000) + ]; - InstEncoding[] condRnPuwConstraints = new InstEncoding[] - { + InstEncoding[] condRnPuwConstraints = + [ new(0xF0000000, 0xF0000000), new(0x000F0000, 0x000F0000), - new(0x00000000, 0x01A00000), - }; + new(0x00000000, 0x01A00000) + ]; - InstEncoding[] condPuwConstraints = new InstEncoding[] - { + InstEncoding[] condPuwConstraints = + [ new(0xF0000000, 0xF0000000), - new(0x00000000, 0x01A00000), - }; + new(0x00000000, 0x01A00000) + ]; - InstEncoding[] condRnPwConstraints = new InstEncoding[] - { + InstEncoding[] condRnPwConstraints = + [ new(0xF0000000, 0xF0000000), new(0x000F0000, 0x000F0000), - new(0x00200000, 0x01200000), - }; + new(0x00200000, 0x01200000) + ]; - InstEncoding[] condPwConstraints = new InstEncoding[] - { + InstEncoding[] condPwConstraints = + [ new(0xF0000000, 0xF0000000), - new(0x00200000, 0x01200000), - }; + new(0x00200000, 0x01200000) + ]; - InstEncoding[] condRnConstraints3 = new InstEncoding[] - { + InstEncoding[] condRnConstraints3 = + [ new(0xF0000000, 0xF0000000), - new(0x000F0000, 0x000F0000), - }; + new(0x000F0000, 0x000F0000) + ]; - InstEncoding[] condMaskrConstraints = new InstEncoding[] - { + InstEncoding[] condMaskrConstraints = + [ new(0xF0000000, 0xF0000000), - new(0x00000000, 0x004F0000), - }; + new(0x00000000, 0x004F0000) + ]; - InstEncoding[] rnConstraints = new InstEncoding[] - { - new(0x000F0000, 0x000F0000), - }; + InstEncoding[] rnConstraints = + [ + new(0x000F0000, 0x000F0000) + ]; - InstEncoding[] vdVnVmConstraints = new InstEncoding[] - { + InstEncoding[] vdVnVmConstraints = + [ new(0x00001000, 0x00001000), new(0x00010000, 0x00010000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] condRaConstraints = new InstEncoding[] - { + InstEncoding[] condRaConstraints = + [ new(0xF0000000, 0xF0000000), - new(0x0000F000, 0x0000F000), - }; + new(0x0000F000, 0x0000F000) + ]; - InstEncoding[] sizeQvdQvnQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeQvdQvnQvmConstraints = + [ new(0x00300000, 0x00300000), new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeVdConstraints = new InstEncoding[] - { + InstEncoding[] sizeVdConstraints = + [ new(0x00300000, 0x00300000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] qvdQvnQvmConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeQvdQvmConstraints = + [ new(0x000C0000, 0x000C0000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeVnVmConstraints = new InstEncoding[] - { + InstEncoding[] sizeVnVmConstraints = + [ new(0x00300000, 0x00300000), new(0x00010000, 0x00010000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] sizeVdOpvnConstraints = new InstEncoding[] - { + InstEncoding[] sizeVdOpvnConstraints = + [ new(0x00300000, 0x00300000), new(0x00001000, 0x00001000), - new(0x00010100, 0x00010100), - }; + new(0x00010100, 0x00010100) + ]; - InstEncoding[] cmodeCmodeQvdConstraints = new InstEncoding[] - { + InstEncoding[] cmodeCmodeQvdConstraints = + [ new(0x00000000, 0x00000100), new(0x00000C00, 0x00000C00), - new(0x00001040, 0x00001040), - }; + new(0x00001040, 0x00001040) + ]; - InstEncoding[] qvdQvnQvmOpConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmOpConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), - new(0x00000000, 0x00300000), - }; + new(0x00000000, 0x00300000) + ]; - InstEncoding[] qvdQvnQvmSizeConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmSizeConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), - new(0x00300000, 0x00300000), - }; + new(0x00300000, 0x00300000) + ]; - InstEncoding[] qvdQvnConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnConstraints = + [ new(0x00001040, 0x00001040), - new(0x00010040, 0x00010040), - }; + new(0x00010040, 0x00010040) + ]; - InstEncoding[] qvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvmConstraints = + [ new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeConstraints = new InstEncoding[] - { - new(0x00000000, 0x00000300), - }; + InstEncoding[] sizeConstraints = + [ + new(0x00000000, 0x00000300) + ]; - InstEncoding[] vmConstraints = new InstEncoding[] - { - new(0x00000001, 0x00000001), - }; + InstEncoding[] vmConstraints = + [ + new(0x00000001, 0x00000001) + ]; - InstEncoding[] opvdOpvmConstraints = new InstEncoding[] - { + InstEncoding[] opvdOpvmConstraints = + [ new(0x00001100, 0x00001100), - new(0x00000001, 0x00000101), - }; + new(0x00000001, 0x00000101) + ]; - InstEncoding[] imm6Opimm6Imm6QvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] imm6Opimm6Imm6QvdQvmConstraints = + [ new(0x00000000, 0x00380000), new(0x00200000, 0x00300200), new(0x00000000, 0x00200000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] condQvdEbConstraints = new InstEncoding[] - { + InstEncoding[] condQvdEbConstraints = + [ new(0xF0000000, 0xF0000000), new(0x00210000, 0x00210000), - new(0x00400020, 0x00400020), - }; + new(0x00400020, 0x00400020) + ]; - InstEncoding[] imm4QvdConstraints = new InstEncoding[] - { + InstEncoding[] imm4QvdConstraints = + [ new(0x00000000, 0x00070000), - new(0x00001040, 0x00001040), - }; + new(0x00001040, 0x00001040) + ]; - InstEncoding[] qvdQvnQvmQimm4Constraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmQimm4Constraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), - new(0x00000800, 0x00000840), - }; + new(0x00000800, 0x00000840) + ]; - InstEncoding[] qvdConstraints = new InstEncoding[] - { - new(0x00001040, 0x00001040), - }; + InstEncoding[] qvdConstraints = + [ + new(0x00001040, 0x00001040) + ]; - InstEncoding[] vdVnConstraints = new InstEncoding[] - { + InstEncoding[] vdVnConstraints = + [ new(0x00001000, 0x00001000), - new(0x00010000, 0x00010000), - }; + new(0x00010000, 0x00010000) + ]; - InstEncoding[] sizeConstraints2 = new InstEncoding[] - { - new(0x00000C00, 0x00000C00), - }; + InstEncoding[] sizeConstraints2 = + [ + new(0x00000C00, 0x00000C00) + ]; - InstEncoding[] sizeIndexAlignIndexAlignConstraints = new InstEncoding[] - { + InstEncoding[] sizeIndexAlignIndexAlignConstraints = + [ new(0x00000C00, 0x00000C00), new(0x00000010, 0x00000030), - new(0x00000020, 0x00000030), - }; + new(0x00000020, 0x00000030) + ]; - InstEncoding[] sizeSizeaConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeaConstraints = + [ new(0x000000C0, 0x000000C0), - new(0x00000010, 0x000000D0), - }; + new(0x00000010, 0x000000D0) + ]; - InstEncoding[] alignConstraints = new InstEncoding[] - { - new(0x00000020, 0x00000020), - }; + InstEncoding[] alignConstraints = + [ + new(0x00000020, 0x00000020) + ]; - InstEncoding[] alignConstraints2 = new InstEncoding[] - { + InstEncoding[] alignConstraints2 = + [ + new(0x00000030, 0x00000030) + ]; + + InstEncoding[] sizeConstraints3 = + [ + new(0x000000C0, 0x000000C0) + ]; + + InstEncoding[] alignSizeConstraints = + [ new(0x00000030, 0x00000030), - }; + new(0x000000C0, 0x000000C0) + ]; - InstEncoding[] sizeConstraints3 = new InstEncoding[] - { + InstEncoding[] sizeAConstraints = + [ new(0x000000C0, 0x000000C0), - }; + new(0x00000010, 0x00000010) + ]; - InstEncoding[] alignSizeConstraints = new InstEncoding[] - { - new(0x00000030, 0x00000030), + InstEncoding[] sizeAlignConstraints = + [ new(0x000000C0, 0x000000C0), - }; + new(0x00000020, 0x00000020) + ]; - InstEncoding[] sizeAConstraints = new InstEncoding[] - { - new(0x000000C0, 0x000000C0), - new(0x00000010, 0x00000010), - }; - - InstEncoding[] sizeAlignConstraints = new InstEncoding[] - { - new(0x000000C0, 0x000000C0), - new(0x00000020, 0x00000020), - }; - - InstEncoding[] sizeIndexAlignConstraints = new InstEncoding[] - { + InstEncoding[] sizeIndexAlignConstraints = + [ new(0x00000C00, 0x00000C00), - new(0x00000030, 0x00000030), - }; + new(0x00000030, 0x00000030) + ]; - InstEncoding[] sizeaConstraints = new InstEncoding[] - { - new(0x000000C0, 0x000000D0), - }; + InstEncoding[] sizeaConstraints = + [ + new(0x000000C0, 0x000000D0) + ]; - InstEncoding[] sizeSizeVdConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeVdConstraints = + [ new(0x00300000, 0x00300000), new(0x00000000, 0x00300000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeQvdQvnConstraints = new InstEncoding[] - { + InstEncoding[] sizeQvdQvnConstraints = + [ new(0x00300000, 0x00300000), new(0x01001000, 0x01001000), - new(0x01010000, 0x01010000), - }; + new(0x01010000, 0x01010000) + ]; - InstEncoding[] imm3hImm3hImm3hImm3hImm3hVdConstraints = new InstEncoding[] - { + InstEncoding[] imm3hImm3hImm3hImm3hImm3hVdConstraints = + [ new(0x00000000, 0x00380000), new(0x00180000, 0x00380000), new(0x00280000, 0x00380000), new(0x00300000, 0x00380000), new(0x00380000, 0x00380000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeVmConstraints = new InstEncoding[] - { + InstEncoding[] sizeVmConstraints = + [ new(0x000C0000, 0x000C0000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] condOpc1opc2Constraints = new InstEncoding[] - { + InstEncoding[] condOpc1opc2Constraints = + [ new(0xF0000000, 0xF0000000), - new(0x00000040, 0x00400060), - }; + new(0x00000040, 0x00400060) + ]; - InstEncoding[] condUopc1opc2Uopc1opc2Constraints = new InstEncoding[] - { + InstEncoding[] condUopc1opc2Uopc1opc2Constraints = + [ new(0xF0000000, 0xF0000000), new(0x00800000, 0x00C00060), - new(0x00000040, 0x00400060), - }; + new(0x00000040, 0x00400060) + ]; - InstEncoding[] sizeOpuOpsizeVdConstraints = new InstEncoding[] - { + InstEncoding[] sizeOpuOpsizeVdConstraints = + [ new(0x00300000, 0x00300000), new(0x01000200, 0x01000200), new(0x00100200, 0x00300200), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeOpsizeOpsizeQvdQvnQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeOpsizeOpsizeQvdQvnQvmConstraints = + [ new(0x00300000, 0x00300000), new(0x01100000, 0x01300000), new(0x01200000, 0x01300000), new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] cmodeQvdConstraints = new InstEncoding[] - { + InstEncoding[] cmodeQvdConstraints = + [ new(0x00000E00, 0x00000E00), - new(0x00001040, 0x00001040), - }; + new(0x00001040, 0x00001040) + ]; - InstEncoding[] qConstraints = new InstEncoding[] - { - new(0x00000040, 0x00000040), - }; + InstEncoding[] qConstraints = + [ + new(0x00000040, 0x00000040) + ]; - InstEncoding[] sizeQConstraints = new InstEncoding[] - { + InstEncoding[] sizeQConstraints = + [ new(0x00300000, 0x00300000), - new(0x00000040, 0x00000040), - }; + new(0x00000040, 0x00000040) + ]; - InstEncoding[] sizeConstraints4 = new InstEncoding[] - { - new(0x00300000, 0x00300000), - }; + InstEncoding[] sizeConstraints4 = + [ + new(0x00300000, 0x00300000) + ]; - InstEncoding[] qvdQvnQvmSizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmSizeSizeConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), new(0x00000000, 0x00300000), - new(0x00300000, 0x00300000), - }; + new(0x00300000, 0x00300000) + ]; - InstEncoding[] sizeSizeQvdQvnConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeQvdQvnConstraints = + [ new(0x00300000, 0x00300000), new(0x00000000, 0x00300000), new(0x01001000, 0x01001000), - new(0x01010000, 0x01010000), - }; + new(0x01010000, 0x01010000) + ]; - InstEncoding[] opSizeVmConstraints = new InstEncoding[] - { + InstEncoding[] opSizeVmConstraints = + [ new(0x00000000, 0x000000C0), new(0x000C0000, 0x000C0000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] qvdQvmQvnConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvmQvnConstraints = + [ new(0x00001040, 0x00001040), new(0x00000041, 0x00000041), - new(0x00010040, 0x00010040), - }; + new(0x00010040, 0x00010040) + ]; - InstEncoding[] imm6UopVmConstraints = new InstEncoding[] - { + InstEncoding[] imm6UopVmConstraints = + [ new(0x00000000, 0x00380000), new(0x00000000, 0x01000100), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] imm6lUopQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] imm6lUopQvdQvmConstraints = + [ new(0x00000000, 0x00380080), new(0x00000000, 0x01000100), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] qvdQvmSizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvmSizeSizeConstraints = + [ new(0x00001040, 0x00001040), new(0x00000041, 0x00000041), new(0x00000000, 0x000C0000), - new(0x000C0000, 0x000C0000), - }; + new(0x000C0000, 0x000C0000) + ]; - InstEncoding[] sizeSizeSizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeSizeQvdQvmConstraints = + [ new(0x00040000, 0x000C0000), new(0x00080000, 0x000C0000), new(0x000C0000, 0x000C0000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeSizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeQvdQvmConstraints = + [ new(0x00080000, 0x000C0000), new(0x000C0000, 0x000C0000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] imm6lQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] imm6lQvdQvmConstraints = + [ new(0x00000000, 0x00380080), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] imm6VmConstraints = new InstEncoding[] - { + InstEncoding[] imm6VmConstraints = + [ new(0x00000000, 0x00380000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] imm6VdImm6Imm6Imm6Constraints = new InstEncoding[] - { + InstEncoding[] imm6VdImm6Imm6Imm6Constraints = + [ new(0x00000000, 0x00380000), new(0x00001000, 0x00001000), new(0x00080000, 0x003F0000), new(0x00100000, 0x003F0000), - new(0x00200000, 0x003F0000), - }; + new(0x00200000, 0x003F0000) + ]; - InstEncoding[] sizeVdConstraints2 = new InstEncoding[] - { + InstEncoding[] sizeVdConstraints2 = + [ new(0x000C0000, 0x000C0000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeQsizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeQsizeQvdQvmConstraints = + [ new(0x000C0000, 0x000C0000), new(0x00080000, 0x000C0040), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - List insts = new() - { + List insts = + [ new(0x02A00000, 0x0FE00000, condConstraints, InstName.AdcI, T.AdcIA1, IsaVersion.v80, InstFlags.CondRd), new(0x00A00000, 0x0FE00010, condConstraints, InstName.AdcR, T.AdcRA1, IsaVersion.v80, InstFlags.CondRd), new(0x00A00010, 0x0FE00090, condConstraints, InstName.AdcRr, T.AdcRrA1, IsaVersion.v80, InstFlags.CondRd), @@ -1176,7 +1176,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 new(0x0320F002, 0x0FFFFFFF, condConstraints, InstName.Wfe, T.WfeA1, IsaVersion.v80, InstFlags.Cond), new(0x0320F003, 0x0FFFFFFF, condConstraints, InstName.Wfi, T.WfiA1, IsaVersion.v80, InstFlags.Cond), new(0x0320F001, 0x0FFFFFFF, condConstraints, InstName.Yield, T.YieldA1, IsaVersion.v80, InstFlags.Cond), - }; + ]; _table = new(insts); } diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT16.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT16.cs index 7ff5f6c90..f660cdcec 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT16.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT16.cs @@ -9,48 +9,49 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 static InstTableT16() { - InstEncoding[] rmRdndnConstraints = new InstEncoding[] - { + InstEncoding[] rmRdndnConstraints = + [ new(0x00680000, 0x00780000), - new(0x00850000, 0x00870000), - }; + new(0x00850000, 0x00870000) + ]; - InstEncoding[] rmConstraints = new InstEncoding[] - { - new(0x00680000, 0x00780000), - }; + InstEncoding[] rmConstraints = + [ + new(0x00680000, 0x00780000) + ]; - InstEncoding[] condCondConstraints = new InstEncoding[] - { + InstEncoding[] condCondConstraints = + [ new(0x0E000000, 0x0F000000), - new(0x0F000000, 0x0F000000), - }; + new(0x0F000000, 0x0F000000) + ]; - InstEncoding[] maskConstraints = new InstEncoding[] - { - new(0x00000000, 0x000F0000), - }; + InstEncoding[] maskConstraints = + [ + new(0x00000000, 0x000F0000) + ]; - InstEncoding[] opConstraints = new InstEncoding[] - { - new(0x18000000, 0x18000000), - }; + InstEncoding[] opConstraints = + [ + new(0x18000000, 0x18000000) + ]; - InstEncoding[] opOpOpOpConstraints = new InstEncoding[] - { + InstEncoding[] opOpOpOpConstraints = + [ new(0x00000000, 0x03C00000), new(0x00400000, 0x03C00000), new(0x01400000, 0x03C00000), - new(0x01800000, 0x03C00000), - }; + new(0x01800000, 0x03C00000) + ]; - List insts = new() - { + List insts = + [ new(0x41400000, 0xFFC00000, InstName.AdcR, T.AdcRT1, IsaVersion.v80, InstFlags.Rdn), new(0x1C000000, 0xFE000000, InstName.AddI, T.AddIT1, IsaVersion.v80, InstFlags.Rd), new(0x30000000, 0xF8000000, InstName.AddI, T.AddIT2, IsaVersion.v80, InstFlags.Rdn), new(0x18000000, 0xFE000000, InstName.AddR, T.AddRT1, IsaVersion.v80, InstFlags.Rd), - new(0x44000000, 0xFF000000, rmRdndnConstraints, InstName.AddR, T.AddRT2, IsaVersion.v80, InstFlags.RdnDn), + new(0x44000000, 0xFF000000, rmRdndnConstraints, InstName.AddR, T.AddRT2, IsaVersion.v80, + InstFlags.RdnDn), new(0xA8000000, 0xF8000000, InstName.AddSpI, T.AddSpIT1, IsaVersion.v80, InstFlags.RdRd16), new(0xB0000000, 0xFF800000, InstName.AddSpI, T.AddSpIT2, IsaVersion.v80, InstFlags.None), new(0x44680000, 0xFF780000, InstName.AddSpR, T.AddSpRT1, IsaVersion.v80, InstFlags.None), @@ -86,7 +87,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 new(0x20000000, 0xF8000000, InstName.MovI, T.MovIT1, IsaVersion.v80, InstFlags.RdRd16), new(0x46000000, 0xFF000000, InstName.MovR, T.MovRT1, IsaVersion.v80, InstFlags.Rd), new(0x00000000, 0xE0000000, opConstraints, InstName.MovR, T.MovRT2, IsaVersion.v80, InstFlags.Rd), - new(0x40000000, 0xFE000000, opOpOpOpConstraints, InstName.MovRr, T.MovRrT1, IsaVersion.v80, InstFlags.None), + new(0x40000000, 0xFE000000, opOpOpOpConstraints, InstName.MovRr, T.MovRrT1, IsaVersion.v80, + InstFlags.None), new(0x43400000, 0xFFC00000, InstName.Mul, T.MulT1, IsaVersion.v80, InstFlags.None), new(0x43C00000, 0xFFC00000, InstName.MvnR, T.MvnRT1, IsaVersion.v80, InstFlags.Rd), new(0xBF000000, 0xFFFF0000, InstName.Nop, T.NopT1, IsaVersion.v80, InstFlags.None), @@ -99,7 +101,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 new(0x42400000, 0xFFC00000, InstName.RsbI, T.RsbIT1, IsaVersion.v80, InstFlags.Rd), new(0x41800000, 0xFFC00000, InstName.SbcR, T.SbcRT1, IsaVersion.v80, InstFlags.Rdn), new(0xB6500000, 0xFFF70000, InstName.Setend, T.SetendT1, IsaVersion.v80, InstFlags.None), - new(0xB6100000, 0xFFF70000, InstName.Setpan, T.SetpanT1, IsaVersion.v81, IsaFeature.FeatPan, InstFlags.None), + new(0xB6100000, 0xFFF70000, InstName.Setpan, T.SetpanT1, IsaVersion.v81, IsaFeature.FeatPan, + InstFlags.None), new(0xBF400000, 0xFFFF0000, InstName.Sev, T.SevT1, IsaVersion.v80, InstFlags.None), new(0xBF500000, 0xFFFF0000, InstName.Sevl, T.SevlT1, IsaVersion.v80, InstFlags.None), new(0xC0000000, 0xF8000000, InstName.Stm, T.StmT1, IsaVersion.v80, InstFlags.RlistRead), @@ -123,8 +126,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 new(0xB2800000, 0xFFC00000, InstName.Uxth, T.UxthT1, IsaVersion.v80, InstFlags.Rd), new(0xBF200000, 0xFFFF0000, InstName.Wfe, T.WfeT1, IsaVersion.v80, InstFlags.None), new(0xBF300000, 0xFFFF0000, InstName.Wfi, T.WfiT1, IsaVersion.v80, InstFlags.None), - new(0xBF100000, 0xFFFF0000, InstName.Yield, T.YieldT1, IsaVersion.v80, InstFlags.None), - }; + new(0xBF100000, 0xFFFF0000, InstName.Yield, T.YieldT1, IsaVersion.v80, InstFlags.None) + ]; _table = new(insts); } diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT32.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT32.cs index 4a11effdb..09222f43e 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT32.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm32/InstTableT32.cs @@ -9,525 +9,525 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 static InstTableT32() { - InstEncoding[] rnRdsConstraints = new InstEncoding[] - { + InstEncoding[] rnRdsConstraints = + [ new(0x000D0000, 0x000F0000), - new(0x00100F00, 0x00100F00), - }; + new(0x00100F00, 0x00100F00) + ]; - InstEncoding[] rnRnConstraints = new InstEncoding[] - { + InstEncoding[] rnRnConstraints = + [ new(0x000D0000, 0x000F0000), - new(0x000F0000, 0x000F0000), - }; + new(0x000F0000, 0x000F0000) + ]; - InstEncoding[] rdsConstraints = new InstEncoding[] - { - new(0x00100F00, 0x00100F00), - }; + InstEncoding[] rdsConstraints = + [ + new(0x00100F00, 0x00100F00) + ]; - InstEncoding[] vdVmConstraints = new InstEncoding[] - { + InstEncoding[] vdVmConstraints = + [ new(0x00001000, 0x00001000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] condCondCondConstraints = new InstEncoding[] - { + InstEncoding[] condCondCondConstraints = + [ new(0x03800000, 0x03C00000), new(0x03C00000, 0x03C00000), - new(0x03800000, 0x03800000), - }; + new(0x03800000, 0x03800000) + ]; - InstEncoding[] rnConstraints = new InstEncoding[] - { - new(0x000F0000, 0x000F0000), - }; + InstEncoding[] rnConstraints = + [ + new(0x000F0000, 0x000F0000) + ]; - InstEncoding[] hConstraints = new InstEncoding[] - { - new(0x00000001, 0x00000001), - }; + InstEncoding[] hConstraints = + [ + new(0x00000001, 0x00000001) + ]; - InstEncoding[] imodmConstraints = new InstEncoding[] - { - new(0x00000000, 0x00000700), - }; + InstEncoding[] imodmConstraints = + [ + new(0x00000000, 0x00000700) + ]; - InstEncoding[] optionConstraints = new InstEncoding[] - { - new(0x00000000, 0x0000000F), - }; + InstEncoding[] optionConstraints = + [ + new(0x00000000, 0x0000000F) + ]; - InstEncoding[] puwPwPuwPuwConstraints = new InstEncoding[] - { + InstEncoding[] puwPwPuwPuwConstraints = + [ new(0x00000000, 0x01A00000), new(0x01000000, 0x01200000), new(0x00200000, 0x01A00000), - new(0x01A00000, 0x01A00000), - }; + new(0x01A00000, 0x01A00000) + ]; - InstEncoding[] rnPuwConstraints = new InstEncoding[] - { + InstEncoding[] rnPuwConstraints = + [ new(0x000F0000, 0x000F0000), - new(0x00000000, 0x01A00000), - }; + new(0x00000000, 0x01A00000) + ]; - InstEncoding[] puwConstraints = new InstEncoding[] - { - new(0x00000000, 0x01A00000), - }; + InstEncoding[] puwConstraints = + [ + new(0x00000000, 0x01A00000) + ]; - InstEncoding[] rnRtConstraints = new InstEncoding[] - { + InstEncoding[] rnRtConstraints = + [ new(0x000F0000, 0x000F0000), - new(0x0000F000, 0x0000F000), - }; + new(0x0000F000, 0x0000F000) + ]; - InstEncoding[] rnRtpuwPuwPwConstraints = new InstEncoding[] - { + InstEncoding[] rnRtpuwPuwPwConstraints = + [ new(0x000F0000, 0x000F0000), new(0x0000F400, 0x0000F700), new(0x00000600, 0x00000700), - new(0x00000000, 0x00000500), - }; + new(0x00000000, 0x00000500) + ]; - InstEncoding[] rtConstraints = new InstEncoding[] - { - new(0x0000F000, 0x0000F000), - }; + InstEncoding[] rtConstraints = + [ + new(0x0000F000, 0x0000F000) + ]; - InstEncoding[] rnPwConstraints = new InstEncoding[] - { + InstEncoding[] rnPwConstraints = + [ new(0x000F0000, 0x000F0000), - new(0x00000000, 0x01200000), - }; + new(0x00000000, 0x01200000) + ]; - InstEncoding[] pwConstraints = new InstEncoding[] - { - new(0x00000000, 0x01200000), - }; + InstEncoding[] pwConstraints = + [ + new(0x00000000, 0x01200000) + ]; - InstEncoding[] rnPuwPwConstraints = new InstEncoding[] - { + InstEncoding[] rnPuwPwConstraints = + [ new(0x000F0000, 0x000F0000), new(0x00000600, 0x00000700), - new(0x00000000, 0x00000500), - }; + new(0x00000000, 0x00000500) + ]; - InstEncoding[] raConstraints = new InstEncoding[] - { - new(0x0000F000, 0x0000F000), - }; + InstEncoding[] raConstraints = + [ + new(0x0000F000, 0x0000F000) + ]; - InstEncoding[] sTConstraints = new InstEncoding[] - { + InstEncoding[] sTConstraints = + [ new(0x00100000, 0x00100000), - new(0x00000010, 0x00000010), - }; + new(0x00000010, 0x00000010) + ]; - InstEncoding[] vdVnVmConstraints = new InstEncoding[] - { + InstEncoding[] vdVnVmConstraints = + [ new(0x00001000, 0x00001000), new(0x00010000, 0x00010000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] shimm2imm3Constraints = new InstEncoding[] - { - new(0x00200000, 0x002070C0), - }; + InstEncoding[] shimm2imm3Constraints = + [ + new(0x00200000, 0x002070C0) + ]; - InstEncoding[] rnimm8Constraints = new InstEncoding[] - { - new(0x000E0000, 0x000F00FF), - }; + InstEncoding[] rnimm8Constraints = + [ + new(0x000E0000, 0x000F00FF) + ]; - InstEncoding[] sizeQvdQvnQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeQvdQvnQvmConstraints = + [ new(0x00300000, 0x00300000), new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeVdConstraints = new InstEncoding[] - { + InstEncoding[] sizeVdConstraints = + [ new(0x00300000, 0x00300000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] qvdQvnQvmConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeQvdQvmConstraints = + [ new(0x000C0000, 0x000C0000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeVnVmConstraints = new InstEncoding[] - { + InstEncoding[] sizeVnVmConstraints = + [ new(0x00300000, 0x00300000), new(0x00010000, 0x00010000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] sizeVdOpvnConstraints = new InstEncoding[] - { + InstEncoding[] sizeVdOpvnConstraints = + [ new(0x00300000, 0x00300000), new(0x00001000, 0x00001000), - new(0x00010100, 0x00010100), - }; + new(0x00010100, 0x00010100) + ]; - InstEncoding[] cmodeCmodeQvdConstraints = new InstEncoding[] - { + InstEncoding[] cmodeCmodeQvdConstraints = + [ new(0x00000000, 0x00000100), new(0x00000C00, 0x00000C00), - new(0x00001040, 0x00001040), - }; + new(0x00001040, 0x00001040) + ]; - InstEncoding[] qvdQvnQvmOpConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmOpConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), - new(0x00000000, 0x00300000), - }; + new(0x00000000, 0x00300000) + ]; - InstEncoding[] qvdQvnQvmSizeConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmSizeConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), - new(0x00300000, 0x00300000), - }; + new(0x00300000, 0x00300000) + ]; - InstEncoding[] qvdQvnConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnConstraints = + [ new(0x00001040, 0x00001040), - new(0x00010040, 0x00010040), - }; + new(0x00010040, 0x00010040) + ]; - InstEncoding[] qvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvmConstraints = + [ new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeConstraints = new InstEncoding[] - { - new(0x00000000, 0x00000300), - }; + InstEncoding[] sizeConstraints = + [ + new(0x00000000, 0x00000300) + ]; - InstEncoding[] vmConstraints = new InstEncoding[] - { - new(0x00000001, 0x00000001), - }; + InstEncoding[] vmConstraints = + [ + new(0x00000001, 0x00000001) + ]; - InstEncoding[] opvdOpvmConstraints = new InstEncoding[] - { + InstEncoding[] opvdOpvmConstraints = + [ new(0x00001100, 0x00001100), - new(0x00000001, 0x00000101), - }; + new(0x00000001, 0x00000101) + ]; - InstEncoding[] imm6Opimm6Imm6QvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] imm6Opimm6Imm6QvdQvmConstraints = + [ new(0x00000000, 0x00380000), new(0x00200000, 0x00300200), new(0x00000000, 0x00200000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] qvdEbConstraints = new InstEncoding[] - { + InstEncoding[] qvdEbConstraints = + [ new(0x00210000, 0x00210000), - new(0x00400020, 0x00400020), - }; + new(0x00400020, 0x00400020) + ]; - InstEncoding[] imm4QvdConstraints = new InstEncoding[] - { + InstEncoding[] imm4QvdConstraints = + [ new(0x00000000, 0x00070000), - new(0x00001040, 0x00001040), - }; + new(0x00001040, 0x00001040) + ]; - InstEncoding[] qvdQvnQvmQimm4Constraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmQimm4Constraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), - new(0x00000800, 0x00000840), - }; + new(0x00000800, 0x00000840) + ]; - InstEncoding[] qvdConstraints = new InstEncoding[] - { - new(0x00001040, 0x00001040), - }; + InstEncoding[] qvdConstraints = + [ + new(0x00001040, 0x00001040) + ]; - InstEncoding[] vdVnConstraints = new InstEncoding[] - { + InstEncoding[] vdVnConstraints = + [ new(0x00001000, 0x00001000), - new(0x00010000, 0x00010000), - }; + new(0x00010000, 0x00010000) + ]; - InstEncoding[] sizeConstraints2 = new InstEncoding[] - { - new(0x00000C00, 0x00000C00), - }; + InstEncoding[] sizeConstraints2 = + [ + new(0x00000C00, 0x00000C00) + ]; - InstEncoding[] sizeIndexAlignIndexAlignConstraints = new InstEncoding[] - { + InstEncoding[] sizeIndexAlignIndexAlignConstraints = + [ new(0x00000C00, 0x00000C00), new(0x00000010, 0x00000030), - new(0x00000020, 0x00000030), - }; + new(0x00000020, 0x00000030) + ]; - InstEncoding[] sizeSizeaConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeaConstraints = + [ new(0x000000C0, 0x000000C0), - new(0x00000010, 0x000000D0), - }; + new(0x00000010, 0x000000D0) + ]; - InstEncoding[] alignConstraints = new InstEncoding[] - { - new(0x00000020, 0x00000020), - }; + InstEncoding[] alignConstraints = + [ + new(0x00000020, 0x00000020) + ]; - InstEncoding[] alignConstraints2 = new InstEncoding[] - { + InstEncoding[] alignConstraints2 = + [ + new(0x00000030, 0x00000030) + ]; + + InstEncoding[] sizeConstraints3 = + [ + new(0x000000C0, 0x000000C0) + ]; + + InstEncoding[] alignSizeConstraints = + [ new(0x00000030, 0x00000030), - }; + new(0x000000C0, 0x000000C0) + ]; - InstEncoding[] sizeConstraints3 = new InstEncoding[] - { + InstEncoding[] sizeAConstraints = + [ new(0x000000C0, 0x000000C0), - }; + new(0x00000010, 0x00000010) + ]; - InstEncoding[] alignSizeConstraints = new InstEncoding[] - { - new(0x00000030, 0x00000030), + InstEncoding[] sizeAlignConstraints = + [ new(0x000000C0, 0x000000C0), - }; + new(0x00000020, 0x00000020) + ]; - InstEncoding[] sizeAConstraints = new InstEncoding[] - { - new(0x000000C0, 0x000000C0), - new(0x00000010, 0x00000010), - }; - - InstEncoding[] sizeAlignConstraints = new InstEncoding[] - { - new(0x000000C0, 0x000000C0), - new(0x00000020, 0x00000020), - }; - - InstEncoding[] sizeIndexAlignConstraints = new InstEncoding[] - { + InstEncoding[] sizeIndexAlignConstraints = + [ new(0x00000C00, 0x00000C00), - new(0x00000030, 0x00000030), - }; + new(0x00000030, 0x00000030) + ]; - InstEncoding[] sizeaConstraints = new InstEncoding[] - { - new(0x000000C0, 0x000000D0), - }; + InstEncoding[] sizeaConstraints = + [ + new(0x000000C0, 0x000000D0) + ]; - InstEncoding[] sizeSizeVdConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeVdConstraints = + [ new(0x00300000, 0x00300000), new(0x00000000, 0x00300000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeQvdQvnConstraints = new InstEncoding[] - { + InstEncoding[] sizeQvdQvnConstraints = + [ new(0x00300000, 0x00300000), new(0x10001000, 0x10001000), - new(0x10010000, 0x10010000), - }; + new(0x10010000, 0x10010000) + ]; - InstEncoding[] imm3hImm3hImm3hImm3hImm3hVdConstraints = new InstEncoding[] - { + InstEncoding[] imm3hImm3hImm3hImm3hImm3hVdConstraints = + [ new(0x00000000, 0x00380000), new(0x00180000, 0x00380000), new(0x00280000, 0x00380000), new(0x00300000, 0x00380000), new(0x00380000, 0x00380000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeVmConstraints = new InstEncoding[] - { + InstEncoding[] sizeVmConstraints = + [ new(0x000C0000, 0x000C0000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] opc1opc2Constraints = new InstEncoding[] - { - new(0x00000040, 0x00400060), - }; + InstEncoding[] opc1opc2Constraints = + [ + new(0x00000040, 0x00400060) + ]; - InstEncoding[] uopc1opc2Uopc1opc2Constraints = new InstEncoding[] - { + InstEncoding[] uopc1opc2Uopc1opc2Constraints = + [ new(0x00800000, 0x00C00060), - new(0x00000040, 0x00400060), - }; + new(0x00000040, 0x00400060) + ]; - InstEncoding[] sizeOpuOpsizeVdConstraints = new InstEncoding[] - { + InstEncoding[] sizeOpuOpsizeVdConstraints = + [ new(0x00300000, 0x00300000), new(0x10000200, 0x10000200), new(0x00100200, 0x00300200), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeOpsizeOpsizeQvdQvnQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeOpsizeOpsizeQvdQvnQvmConstraints = + [ new(0x00300000, 0x00300000), new(0x10100000, 0x10300000), new(0x10200000, 0x10300000), new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] cmodeQvdConstraints = new InstEncoding[] - { + InstEncoding[] cmodeQvdConstraints = + [ new(0x00000E00, 0x00000E00), - new(0x00001040, 0x00001040), - }; + new(0x00001040, 0x00001040) + ]; - InstEncoding[] qConstraints = new InstEncoding[] - { - new(0x00000040, 0x00000040), - }; + InstEncoding[] qConstraints = + [ + new(0x00000040, 0x00000040) + ]; - InstEncoding[] sizeQConstraints = new InstEncoding[] - { + InstEncoding[] sizeQConstraints = + [ new(0x00300000, 0x00300000), - new(0x00000040, 0x00000040), - }; + new(0x00000040, 0x00000040) + ]; - InstEncoding[] sizeConstraints4 = new InstEncoding[] - { - new(0x00300000, 0x00300000), - }; + InstEncoding[] sizeConstraints4 = + [ + new(0x00300000, 0x00300000) + ]; - InstEncoding[] qvdQvnQvmSizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvnQvmSizeSizeConstraints = + [ new(0x00001040, 0x00001040), new(0x00010040, 0x00010040), new(0x00000041, 0x00000041), new(0x00000000, 0x00300000), - new(0x00300000, 0x00300000), - }; + new(0x00300000, 0x00300000) + ]; - InstEncoding[] sizeSizeQvdQvnConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeQvdQvnConstraints = + [ new(0x00300000, 0x00300000), new(0x00000000, 0x00300000), new(0x10001000, 0x10001000), - new(0x10010000, 0x10010000), - }; + new(0x10010000, 0x10010000) + ]; - InstEncoding[] opSizeVmConstraints = new InstEncoding[] - { + InstEncoding[] opSizeVmConstraints = + [ new(0x00000000, 0x000000C0), new(0x000C0000, 0x000C0000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] qvdQvmQvnConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvmQvnConstraints = + [ new(0x00001040, 0x00001040), new(0x00000041, 0x00000041), - new(0x00010040, 0x00010040), - }; + new(0x00010040, 0x00010040) + ]; - InstEncoding[] imm6UopVmConstraints = new InstEncoding[] - { + InstEncoding[] imm6UopVmConstraints = + [ new(0x00000000, 0x00380000), new(0x00000000, 0x10000100), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] imm6lUopQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] imm6lUopQvdQvmConstraints = + [ new(0x00000000, 0x00380080), new(0x00000000, 0x10000100), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] qvdQvmSizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] qvdQvmSizeSizeConstraints = + [ new(0x00001040, 0x00001040), new(0x00000041, 0x00000041), new(0x00000000, 0x000C0000), - new(0x000C0000, 0x000C0000), - }; + new(0x000C0000, 0x000C0000) + ]; - InstEncoding[] sizeSizeSizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeSizeQvdQvmConstraints = + [ new(0x00040000, 0x000C0000), new(0x00080000, 0x000C0000), new(0x000C0000, 0x000C0000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] sizeSizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeQvdQvmConstraints = + [ new(0x00080000, 0x000C0000), new(0x000C0000, 0x000C0000), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] imm6lQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] imm6lQvdQvmConstraints = + [ new(0x00000000, 0x00380080), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - InstEncoding[] imm6VmConstraints = new InstEncoding[] - { + InstEncoding[] imm6VmConstraints = + [ new(0x00000000, 0x00380000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] imm6VdImm6Imm6Imm6Constraints = new InstEncoding[] - { + InstEncoding[] imm6VdImm6Imm6Imm6Constraints = + [ new(0x00000000, 0x00380000), new(0x00001000, 0x00001000), new(0x00080000, 0x003F0000), new(0x00100000, 0x003F0000), - new(0x00200000, 0x003F0000), - }; + new(0x00200000, 0x003F0000) + ]; - InstEncoding[] sizeVdConstraints2 = new InstEncoding[] - { + InstEncoding[] sizeVdConstraints2 = + [ new(0x000C0000, 0x000C0000), - new(0x00001000, 0x00001000), - }; + new(0x00001000, 0x00001000) + ]; - InstEncoding[] sizeQsizeQvdQvmConstraints = new InstEncoding[] - { + InstEncoding[] sizeQsizeQvdQvmConstraints = + [ new(0x000C0000, 0x000C0000), new(0x00080000, 0x000C0040), new(0x00001040, 0x00001040), - new(0x00000041, 0x00000041), - }; + new(0x00000041, 0x00000041) + ]; - List insts = new() - { + List insts = + [ new(0xF1400000, 0xFBE08000, InstName.AdcI, T.AdcIT1, IsaVersion.v80, InstFlags.Rd), new(0xEB400000, 0xFFE08000, InstName.AdcR, T.AdcRT2, IsaVersion.v80, InstFlags.Rd), new(0xF1000000, 0xFBE08000, rnRdsConstraints, InstName.AddI, T.AddIT3, IsaVersion.v80, InstFlags.Rd), @@ -1190,7 +1190,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm32 new(0xF3AF8002, 0xFFFFFFFF, InstName.Wfe, T.WfeT2, IsaVersion.v80, InstFlags.None), new(0xF3AF8003, 0xFFFFFFFF, InstName.Wfi, T.WfiT2, IsaVersion.v80, InstFlags.None), new(0xF3AF8001, 0xFFFFFFFF, InstName.Yield, T.YieldT2, IsaVersion.v80, InstFlags.None), - }; + ]; _table = new(insts); } diff --git a/src/Ryujinx.Cpu/LightningJit/Arm64/Block.cs b/src/Ryujinx.Cpu/LightningJit/Arm64/Block.cs index 188630a1c..405126357 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm64/Block.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm64/Block.cs @@ -25,8 +25,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm64 { Debug.Assert((int)((endAddress - address) / 4) == instructions.Count); - _predecessors = new(); - _successors = new(); + _predecessors = []; + _successors = []; Address = address; EndAddress = endAddress; Instructions = instructions; diff --git a/src/Ryujinx.Cpu/LightningJit/Arm64/MultiBlock.cs b/src/Ryujinx.Cpu/LightningJit/Arm64/MultiBlock.cs index 8ac65059a..42fd24ec9 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm64/MultiBlock.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm64/MultiBlock.cs @@ -36,8 +36,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm64 { Console.WriteLine($"bb {block.Index}"); - List predList = new(); - List succList = new(); + List predList = []; + List succList = []; for (int index = 0; index < block.PredecessorsCount; index++) { diff --git a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Compiler.cs b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Compiler.cs index 4a3c507df..2900cbda4 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Compiler.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Compiler.cs @@ -309,7 +309,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64 MultiBlock multiBlock = Decoder.DecodeMulti(cpuPreset, memoryManager, address); Dictionary targets = new(); - List pendingBranches = new(); + List pendingBranches = []; uint gprUseMask = multiBlock.GlobalUseMask.GprMask; uint fpSimdUseMask = multiBlock.GlobalUseMask.FpSimdMask; diff --git a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Decoder.cs b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Decoder.cs index d5e1eb19c..33d319668 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Decoder.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/Decoder.cs @@ -15,8 +15,8 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64 public static MultiBlock DecodeMulti(CpuPreset cpuPreset, IMemoryManager memoryManager, ulong address) { - List blocks = new(); - List branchTargets = new(); + List blocks = []; + List branchTargets = []; RegisterMask useMask = RegisterMask.Zero; @@ -238,7 +238,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64 { ulong startAddress = address; - List insts = new(); + List insts = []; uint gprUseMask = useMask.GprMask; uint fpSimdUseMask = useMask.FpSimdMask; diff --git a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstTable.cs b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstTable.cs index 88718afb1..b1dc9b30c 100644 --- a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstTable.cs +++ b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstTable.cs @@ -94,37 +94,37 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64 static InstTable() { - InstEncoding[] qsizeConstraints = new InstEncoding[] - { - new(0x00C00000, 0x40C00000), - }; + InstEncoding[] qsizeConstraints = + [ + new(0x00C00000, 0x40C00000) + ]; - InstEncoding[] sizeConstraints = new InstEncoding[] - { - new(0x00C00000, 0x00C00000), - }; + InstEncoding[] sizeConstraints = + [ + new(0x00C00000, 0x00C00000) + ]; - InstEncoding[] opuOpuOpuConstraints = new InstEncoding[] - { + InstEncoding[] opuOpuOpuConstraints = + [ new(0x00001400, 0x00001C00), new(0x00001800, 0x00001C00), - new(0x00001C00, 0x00001C00), - }; + new(0x00001C00, 0x00001C00) + ]; - InstEncoding[] shiftSfimm6Constraints = new InstEncoding[] - { + InstEncoding[] shiftSfimm6Constraints = + [ new(0x00C00000, 0x00C00000), - new(0x00008000, 0x80008000), - }; + new(0x00008000, 0x80008000) + ]; - InstEncoding[] qsizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] qsizeSizeConstraints = + [ new(0x00800000, 0x40C00000), - new(0x00C00000, 0x00C00000), - }; + new(0x00C00000, 0x00C00000) + ]; - InstEncoding[] nimmsNimmsNimmsNimmsNimmsNimmsNimmsNimmsSfnConstraints = new InstEncoding[] - { + InstEncoding[] nimmsNimmsNimmsNimmsNimmsNimmsNimmsNimmsSfnConstraints = + [ new(0x0040FC00, 0x0040FC00), new(0x00007C00, 0x0040FC00), new(0x0000BC00, 0x0040FC00), @@ -133,326 +133,326 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64 new(0x0000F400, 0x0040FC00), new(0x0000F800, 0x0040FC00), new(0x0000FC00, 0x0040FC00), - new(0x00400000, 0x80400000), - }; + new(0x00400000, 0x80400000) + ]; - InstEncoding[] sfimm6Constraints = new InstEncoding[] - { - new(0x00008000, 0x80008000), - }; + InstEncoding[] sfimm6Constraints = + [ + new(0x00008000, 0x80008000) + ]; - InstEncoding[] sfnSfnSfimmr5Sfimms5Constraints = new InstEncoding[] - { + InstEncoding[] sfnSfnSfimmr5Sfimms5Constraints = + [ new(0x80000000, 0x80400000), new(0x00400000, 0x80400000), new(0x00200000, 0x80200000), - new(0x00008000, 0x80008000), - }; + new(0x00008000, 0x80008000) + ]; - InstEncoding[] cmodeopqConstraints = new InstEncoding[] - { - new(0x2000F000, 0x6000F000), - }; + InstEncoding[] cmodeopqConstraints = + [ + new(0x2000F000, 0x6000F000) + ]; - InstEncoding[] rsRtConstraints = new InstEncoding[] - { + InstEncoding[] rsRtConstraints = + [ new(0x00010000, 0x00010000), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] sfszSfszSfszSfszConstraints = new InstEncoding[] - { + InstEncoding[] sfszSfszSfszSfszConstraints = + [ new(0x80000000, 0x80000C00), new(0x80000400, 0x80000C00), new(0x80000800, 0x80000C00), - new(0x00000C00, 0x80000C00), - }; + new(0x00000C00, 0x80000C00) + ]; - InstEncoding[] imm5Constraints = new InstEncoding[] - { + InstEncoding[] imm5Constraints = + [ + new(0x00000000, 0x000F0000) + ]; + + InstEncoding[] imm5Imm5qConstraints = + [ new(0x00000000, 0x000F0000), - }; + new(0x00080000, 0x400F0000) + ]; - InstEncoding[] imm5Imm5qConstraints = new InstEncoding[] - { - new(0x00000000, 0x000F0000), - new(0x00080000, 0x400F0000), - }; - - InstEncoding[] nsfNsfSfimmsConstraints = new InstEncoding[] - { + InstEncoding[] nsfNsfSfimmsConstraints = + [ new(0x00400000, 0x80400000), new(0x80000000, 0x80400000), - new(0x00008000, 0x80008000), - }; + new(0x00008000, 0x80008000) + ]; - InstEncoding[] qimm4Constraints = new InstEncoding[] - { - new(0x00004000, 0x40004000), - }; + InstEncoding[] qimm4Constraints = + [ + new(0x00004000, 0x40004000) + ]; - InstEncoding[] qszConstraints = new InstEncoding[] - { - new(0x00400000, 0x40400000), - }; + InstEncoding[] qszConstraints = + [ + new(0x00400000, 0x40400000) + ]; - InstEncoding[] euacEuacEuacConstraints = new InstEncoding[] - { + InstEncoding[] euacEuacEuacConstraints = + [ new(0x00000800, 0x20800800), new(0x00800000, 0x20800800), - new(0x00800800, 0x20800800), - }; + new(0x00800800, 0x20800800) + ]; - InstEncoding[] qszEuacEuacEuacConstraints = new InstEncoding[] - { + InstEncoding[] qszEuacEuacEuacConstraints = + [ new(0x00400000, 0x40400000), new(0x00000800, 0x20800800), new(0x00800000, 0x20800800), - new(0x00800800, 0x20800800), - }; + new(0x00800800, 0x20800800) + ]; - InstEncoding[] szConstraints = new InstEncoding[] - { - new(0x00400000, 0x00400000), - }; + InstEncoding[] szConstraints = + [ + new(0x00400000, 0x00400000) + ]; - InstEncoding[] sizeQsizeConstraints = new InstEncoding[] - { + InstEncoding[] sizeQsizeConstraints = + [ new(0x00000000, 0x00C00000), - new(0x00C00000, 0x40C00000), - }; + new(0x00C00000, 0x40C00000) + ]; - InstEncoding[] sizeSizeSizelSizeqSizehqConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeSizelSizeqSizehqConstraints = + [ new(0x00000000, 0x00C00000), new(0x00C00000, 0x00C00000), new(0x00A00000, 0x00E00000), new(0x00800000, 0x40C00000), - new(0x00400800, 0x40C00800), - }; + new(0x00400800, 0x40C00800) + ]; - InstEncoding[] szConstraints2 = new InstEncoding[] - { - new(0x00000000, 0x00400000), - }; + InstEncoding[] szConstraints2 = + [ + new(0x00000000, 0x00400000) + ]; - InstEncoding[] immhConstraints = new InstEncoding[] - { + InstEncoding[] immhConstraints = + [ + new(0x00000000, 0x00780000) + ]; + + InstEncoding[] immhQimmhConstraints = + [ new(0x00000000, 0x00780000), - }; + new(0x00400000, 0x40400000) + ]; - InstEncoding[] immhQimmhConstraints = new InstEncoding[] - { - new(0x00000000, 0x00780000), - new(0x00400000, 0x40400000), - }; + InstEncoding[] sfscaleConstraints = + [ + new(0x00000000, 0x80008000) + ]; - InstEncoding[] sfscaleConstraints = new InstEncoding[] - { - new(0x00000000, 0x80008000), - }; - - InstEncoding[] ftypeopcFtypeopcFtypeopcFtypeopcFtypeOpcConstraints = new InstEncoding[] - { + InstEncoding[] ftypeopcFtypeopcFtypeopcFtypeopcFtypeOpcConstraints = + [ new(0x00000000, 0x00C18000), new(0x00408000, 0x00C18000), new(0x00810000, 0x00C18000), new(0x00C18000, 0x00C18000), new(0x00800000, 0x00C00000), - new(0x00010000, 0x00018000), - }; + new(0x00010000, 0x00018000) + ]; - InstEncoding[] szlConstraints = new InstEncoding[] - { + InstEncoding[] szlConstraints = + [ + new(0x00600000, 0x00600000) + ]; + + InstEncoding[] szlQszConstraints = + [ new(0x00600000, 0x00600000), - }; + new(0x00400000, 0x40400000) + ]; - InstEncoding[] szlQszConstraints = new InstEncoding[] - { - new(0x00600000, 0x00600000), - new(0x00400000, 0x40400000), - }; + InstEncoding[] qConstraints = + [ + new(0x00000000, 0x40000000) + ]; - InstEncoding[] qConstraints = new InstEncoding[] - { - new(0x00000000, 0x40000000), - }; - - InstEncoding[] sfftypermodeSfftypermodeConstraints = new InstEncoding[] - { + InstEncoding[] sfftypermodeSfftypermodeConstraints = + [ new(0x00400000, 0x80C80000), - new(0x80000000, 0x80C80000), - }; + new(0x80000000, 0x80C80000) + ]; - InstEncoding[] uo1o2Constraints = new InstEncoding[] - { - new(0x20800000, 0x20801000), - }; + InstEncoding[] uo1o2Constraints = + [ + new(0x20800000, 0x20801000) + ]; - InstEncoding[] qszUo1o2Constraints = new InstEncoding[] - { + InstEncoding[] qszUo1o2Constraints = + [ new(0x00400000, 0x40400000), - new(0x20800000, 0x20801000), - }; + new(0x20800000, 0x20801000) + ]; - InstEncoding[] sConstraints = new InstEncoding[] - { - new(0x00001000, 0x00001000), - }; + InstEncoding[] sConstraints = + [ + new(0x00001000, 0x00001000) + ]; - InstEncoding[] opcodesizeOpcodesizeOpcodesizesOpcodesizeConstraints = new InstEncoding[] - { + InstEncoding[] opcodesizeOpcodesizeOpcodesizesOpcodesizeConstraints = + [ new(0x00004400, 0x0000C400), new(0x00008800, 0x0000C800), new(0x00009400, 0x0000D400), - new(0x0000C000, 0x0000C000), - }; + new(0x0000C000, 0x0000C000) + ]; - InstEncoding[] qsizeConstraints2 = new InstEncoding[] - { - new(0x00000C00, 0x40000C00), - }; + InstEncoding[] qsizeConstraints2 = + [ + new(0x00000C00, 0x40000C00) + ]; - InstEncoding[] rtRtConstraints = new InstEncoding[] - { + InstEncoding[] rtRtConstraints = + [ new(0x00000018, 0x00000018), - new(0x00000001, 0x00000001), - }; + new(0x00000001, 0x00000001) + ]; - InstEncoding[] opc1sizeOpc1sizeOpc1sizeConstraints = new InstEncoding[] - { + InstEncoding[] opc1sizeOpc1sizeOpc1sizeConstraints = + [ new(0x40800000, 0xC0800000), new(0x80800000, 0xC0800000), - new(0xC0800000, 0xC0800000), - }; + new(0xC0800000, 0xC0800000) + ]; - InstEncoding[] rtRt2Constraints = new InstEncoding[] - { + InstEncoding[] rtRt2Constraints = + [ new(0x0000001F, 0x0000001F), - new(0x001F0000, 0x001F0000), - }; + new(0x001F0000, 0x001F0000) + ]; - InstEncoding[] opcConstraints = new InstEncoding[] - { - new(0xC0000000, 0xC0000000), - }; + InstEncoding[] opcConstraints = + [ + new(0xC0000000, 0xC0000000) + ]; - InstEncoding[] opcConstraints2 = new InstEncoding[] - { - new(0x40000000, 0x40000000), - }; + InstEncoding[] opcConstraints2 = + [ + new(0x40000000, 0x40000000) + ]; - InstEncoding[] opclOpcConstraints = new InstEncoding[] - { + InstEncoding[] opclOpcConstraints = + [ new(0x40000000, 0x40400000), - new(0xC0000000, 0xC0000000), - }; + new(0xC0000000, 0xC0000000) + ]; - InstEncoding[] optionConstraints = new InstEncoding[] - { - new(0x00000000, 0x00004000), - }; + InstEncoding[] optionConstraints = + [ + new(0x00000000, 0x00004000) + ]; - InstEncoding[] opc1sizeOpc1sizeOpc1sizeOptionConstraints = new InstEncoding[] - { + InstEncoding[] opc1sizeOpc1sizeOpc1sizeOptionConstraints = + [ new(0x40800000, 0xC0800000), new(0x80800000, 0xC0800000), new(0xC0800000, 0xC0800000), - new(0x00000000, 0x00004000), - }; + new(0x00000000, 0x00004000) + ]; - InstEncoding[] sizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] sizeSizeConstraints = + [ new(0x00000000, 0x00C00000), - new(0x00C00000, 0x00C00000), - }; + new(0x00C00000, 0x00C00000) + ]; - InstEncoding[] sfhwConstraints = new InstEncoding[] - { - new(0x00400000, 0x80400000), - }; + InstEncoding[] sfhwConstraints = + [ + new(0x00400000, 0x80400000) + ]; - InstEncoding[] rtConstraints = new InstEncoding[] - { - new(0x00000001, 0x00000001), - }; + InstEncoding[] rtConstraints = + [ + new(0x00000001, 0x00000001) + ]; - InstEncoding[] usizeUsizeUsizeSizeConstraints = new InstEncoding[] - { + InstEncoding[] usizeUsizeUsizeSizeConstraints = + [ new(0x20400000, 0x20C00000), new(0x20800000, 0x20C00000), new(0x20C00000, 0x20C00000), - new(0x00C00000, 0x00C00000), - }; + new(0x00C00000, 0x00C00000) + ]; - InstEncoding[] sizeSizeConstraints2 = new InstEncoding[] - { + InstEncoding[] sizeSizeConstraints2 = + [ + new(0x00400000, 0x00C00000), + new(0x00800000, 0x00C00000) + ]; + + InstEncoding[] rtConstraints2 = + [ + new(0x00000018, 0x00000018) + ]; + + InstEncoding[] sfopcConstraints = + [ + new(0x00000400, 0x80000400) + ]; + + InstEncoding[] sizeSizeSizeConstraints = + [ new(0x00400000, 0x00C00000), new(0x00800000, 0x00C00000), - }; + new(0x00C00000, 0x00C00000) + ]; - InstEncoding[] rtConstraints2 = new InstEncoding[] - { - new(0x00000018, 0x00000018), - }; - - InstEncoding[] sfopcConstraints = new InstEncoding[] - { - new(0x00000400, 0x80000400), - }; - - InstEncoding[] sizeSizeSizeConstraints = new InstEncoding[] - { - new(0x00400000, 0x00C00000), + InstEncoding[] sizeSizeConstraints3 = + [ new(0x00800000, 0x00C00000), - new(0x00C00000, 0x00C00000), - }; + new(0x00C00000, 0x00C00000) + ]; - InstEncoding[] sizeSizeConstraints3 = new InstEncoding[] - { - new(0x00800000, 0x00C00000), - new(0x00C00000, 0x00C00000), - }; + InstEncoding[] sfConstraints = + [ + new(0x00000000, 0x80000000) + ]; - InstEncoding[] sfConstraints = new InstEncoding[] - { - new(0x00000000, 0x80000000), - }; - - InstEncoding[] immhImmhConstraints = new InstEncoding[] - { + InstEncoding[] immhImmhConstraints = + [ new(0x00000000, 0x00780000), - new(0x00400000, 0x00400000), - }; + new(0x00400000, 0x00400000) + ]; - InstEncoding[] sizeSizeConstraints4 = new InstEncoding[] - { + InstEncoding[] sizeSizeConstraints4 = + [ new(0x00C00000, 0x00C00000), - new(0x00000000, 0x00C00000), - }; + new(0x00000000, 0x00C00000) + ]; - InstEncoding[] ssizeSsizeSsizeConstraints = new InstEncoding[] - { + InstEncoding[] ssizeSsizeSsizeConstraints = + [ new(0x00000000, 0x00C00800), new(0x00400000, 0x00C00800), - new(0x00800000, 0x00C00800), - }; + new(0x00800000, 0x00C00800) + ]; - InstEncoding[] immhOpuConstraints = new InstEncoding[] - { + InstEncoding[] immhOpuConstraints = + [ new(0x00000000, 0x00780000), - new(0x00000000, 0x20001000), - }; + new(0x00000000, 0x20001000) + ]; - InstEncoding[] immhQimmhOpuConstraints = new InstEncoding[] - { + InstEncoding[] immhQimmhOpuConstraints = + [ new(0x00000000, 0x00780000), new(0x00400000, 0x40400000), - new(0x00000000, 0x20001000), - }; + new(0x00000000, 0x20001000) + ]; - List insts = new() - { + List insts = + [ new(0x5AC02000, 0x7FFFFC00, InstName.Abs, IsaVersion.v89, InstFlags.RdRn), new(0x5EE0B800, 0xFFFFFC00, InstName.AbsAdvsimdS, IsaVersion.v80, InstFlags.RdRnFpSimd), new(0x0E20B800, 0xBF3FFC00, qsizeConstraints, InstName.AbsAdvsimdV, IsaVersion.v80, InstFlags.RdRnFpSimd), @@ -1587,7 +1587,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64 new(0xD503203F, 0xFFFFFFFF, InstName.Yield, IsaVersion.v80, InstFlags.None), new(0x0E003800, 0xBF20FC00, qsizeConstraints, InstName.Zip1Advsimd, IsaVersion.v80, InstFlags.RdRnRmFpSimd), new(0x0E007800, 0xBF20FC00, qsizeConstraints, InstName.Zip2Advsimd, IsaVersion.v80, InstFlags.RdRnRmFpSimd), - }; + ]; _table = new(insts); } diff --git a/src/Ryujinx.Cpu/LightningJit/Cache/CacheMemoryAllocator.cs b/src/Ryujinx.Cpu/LightningJit/Cache/CacheMemoryAllocator.cs index 8ba3a6dcd..05c889922 100644 --- a/src/Ryujinx.Cpu/LightningJit/Cache/CacheMemoryAllocator.cs +++ b/src/Ryujinx.Cpu/LightningJit/Cache/CacheMemoryAllocator.cs @@ -24,7 +24,7 @@ namespace Ryujinx.Cpu.LightningJit.Cache } } - private readonly List _blocks = new(); + private readonly List _blocks = []; public CacheMemoryAllocator(int capacity) { diff --git a/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs b/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs index 10ae050b6..5849401ab 100644 --- a/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs +++ b/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs @@ -22,7 +22,7 @@ namespace Ryujinx.Cpu.LightningJit.Cache private static CacheMemoryAllocator _cacheAllocator; - private static readonly List _cacheEntries = new(); + private static readonly List _cacheEntries = []; private static readonly Lock _lock = new(); private static bool _initialized; diff --git a/src/Ryujinx.Cpu/LightningJit/Cache/JitCacheInvalidation.cs b/src/Ryujinx.Cpu/LightningJit/Cache/JitCacheInvalidation.cs index d0a5e4ac8..e851327d4 100644 --- a/src/Ryujinx.Cpu/LightningJit/Cache/JitCacheInvalidation.cs +++ b/src/Ryujinx.Cpu/LightningJit/Cache/JitCacheInvalidation.cs @@ -6,8 +6,8 @@ namespace Ryujinx.Cpu.LightningJit.Cache { class JitCacheInvalidation { - private static readonly int[] _invalidationCode = new int[] - { + private static readonly int[] _invalidationCode = + [ unchecked((int)0xd53b0022), // mrs x2, ctr_el0 unchecked((int)0xd3504c44), // ubfx x4, x2, #16, #4 unchecked((int)0x52800083), // mov w3, #0x4 @@ -35,8 +35,8 @@ namespace Ryujinx.Cpu.LightningJit.Cache unchecked((int)0x54ffffa8), // b.hi 54 unchecked((int)0xd5033b9f), // dsb ish unchecked((int)0xd5033fdf), // isb - unchecked((int)0xd65f03c0), // ret - }; + unchecked((int)0xd65f03c0) // ret + ]; private delegate void InvalidateCache(ulong start, ulong end); diff --git a/src/Ryujinx.Cpu/LightningJit/Cache/NoWxCache.cs b/src/Ryujinx.Cpu/LightningJit/Cache/NoWxCache.cs index a743710e9..1bbf70182 100644 --- a/src/Ryujinx.Cpu/LightningJit/Cache/NoWxCache.cs +++ b/src/Ryujinx.Cpu/LightningJit/Cache/NoWxCache.cs @@ -231,7 +231,7 @@ namespace Ryujinx.Cpu.LightningJit.Cache _sharedCache.Pointer, SharedCacheSize); - List<(ulong, ThreadLocalCacheEntry)> toDelete = new(); + List<(ulong, ThreadLocalCacheEntry)> toDelete = []; foreach ((ulong address, ThreadLocalCacheEntry entry) in _threadLocalCache) { diff --git a/src/Ryujinx.Cpu/LightningJit/Cache/PageAlignedRangeList.cs b/src/Ryujinx.Cpu/LightningJit/Cache/PageAlignedRangeList.cs index b6b386714..dd53dcbf7 100644 --- a/src/Ryujinx.Cpu/LightningJit/Cache/PageAlignedRangeList.cs +++ b/src/Ryujinx.Cpu/LightningJit/Cache/PageAlignedRangeList.cs @@ -35,8 +35,8 @@ namespace Ryujinx.Cpu.LightningJit.Cache { _alignedRangeAction = alignedRangeAction; _alignedFunctionAction = alignedFunctionAction; - _pendingFunctions = new(); - _ranges = new(); + _pendingFunctions = []; + _ranges = []; } public bool Has(ulong address) diff --git a/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/Assembler.cs b/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/Assembler.cs index fb30be2b6..dd130dbeb 100644 --- a/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/Assembler.cs +++ b/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/Assembler.cs @@ -26,7 +26,7 @@ namespace Ryujinx.Cpu.LightningJit.CodeGen.Arm64 public Assembler(CodeWriter writer) { _code = writer.GetList(); - _labels = new List(); + _labels = []; } public readonly Operand CreateLabel() diff --git a/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/TailMerger.cs b/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/TailMerger.cs index e042af126..18204977e 100644 --- a/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/TailMerger.cs +++ b/src/Ryujinx.Cpu/LightningJit/CodeGen/Arm64/TailMerger.cs @@ -16,7 +16,7 @@ namespace Ryujinx.Cpu.LightningJit.CodeGen.Arm64 public TailMerger() { - _branchPointers = new(); + _branchPointers = []; } public void AddConditionalReturn(CodeWriter writer, in Assembler asm, ArmCondition returnCondition) diff --git a/src/Ryujinx.Cpu/LightningJit/CodeWriter.cs b/src/Ryujinx.Cpu/LightningJit/CodeWriter.cs index ac4b22ff1..b2927908a 100644 --- a/src/Ryujinx.Cpu/LightningJit/CodeWriter.cs +++ b/src/Ryujinx.Cpu/LightningJit/CodeWriter.cs @@ -12,7 +12,7 @@ namespace Ryujinx.Cpu.LightningJit public CodeWriter() { - _instructions = new(); + _instructions = []; } public void WriteInstruction(uint instruction) diff --git a/src/Ryujinx.Cpu/LightningJit/Table/InstTableLevel.cs b/src/Ryujinx.Cpu/LightningJit/Table/InstTableLevel.cs index 6567efeef..cdad9a9fe 100644 --- a/src/Ryujinx.Cpu/LightningJit/Table/InstTableLevel.cs +++ b/src/Ryujinx.Cpu/LightningJit/Table/InstTableLevel.cs @@ -34,7 +34,7 @@ namespace Ryujinx.Cpu.LightningJit.Table { int splitIndex = (int)((insts[index].Encoding >> _shift) & _mask); - (splitList[splitIndex] ??= new()).Add(insts[index]); + (splitList[splitIndex] ??= []).Add(insts[index]); } for (int index = 0; index < count; index++) diff --git a/src/Ryujinx.Cpu/LightningJit/Translator.cs b/src/Ryujinx.Cpu/LightningJit/Translator.cs index 22a38ca99..cb3957490 100644 --- a/src/Ryujinx.Cpu/LightningJit/Translator.cs +++ b/src/Ryujinx.Cpu/LightningJit/Translator.cs @@ -134,7 +134,7 @@ namespace Ryujinx.Cpu.LightningJit public void InvalidateJitCacheRegion(ulong address, ulong size) { - ulong[] overlapAddresses = Array.Empty(); + ulong[] overlapAddresses = []; int overlapsCount = Functions.GetOverlaps(address, size, ref overlapAddresses); diff --git a/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs b/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs index 6ef653a37..d0eec7eff 100644 --- a/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs +++ b/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs @@ -140,7 +140,7 @@ namespace Ryujinx.Cpu.LightningJit /// Generated private nint GenerateDispatchStub() { - List branchToFallbackOffsets = new(); + List branchToFallbackOffsets = []; CodeWriter writer = new(); diff --git a/src/Ryujinx.Cpu/PrivateMemoryAllocator.cs b/src/Ryujinx.Cpu/PrivateMemoryAllocator.cs index 6ed3be524..83e9c01fe 100644 --- a/src/Ryujinx.Cpu/PrivateMemoryAllocator.cs +++ b/src/Ryujinx.Cpu/PrivateMemoryAllocator.cs @@ -38,10 +38,10 @@ namespace Ryujinx.Cpu { Memory = memory; Size = size; - _freeRanges = new List - { - new(0, size), - }; + _freeRanges = + [ + new(0, size) + ]; } public ulong Allocate(ulong size, ulong alignment) @@ -185,7 +185,7 @@ namespace Ryujinx.Cpu public PrivateMemoryAllocatorImpl(ulong blockAlignment, MemoryAllocationFlags allocationFlags) { - _blocks = new List(); + _blocks = []; _blockAlignment = blockAlignment; _allocationFlags = allocationFlags; }