Ryujinx/ARMeilleure/Decoders
gdkchan f77694e4f7
Implement a new physical memory manager and replace DeviceMemory (#856)
* Implement a new physical memory manager and replace DeviceMemory

* Proper generic constraints

* Fix debug build

* Add memory tests

* New CPU memory manager and general code cleanup

* Remove host memory management from CPU project, use Ryujinx.Memory instead

* Fix tests

* Document exceptions on MemoryBlock

* Fix leak on unix memory allocation

* Proper disposal of some objects on tests

* Fix JitCache not being set as initialized

* GetRef without checks for 8-bits and 16-bits CAS

* Add MemoryBlock destructor

* Throw in separate method to improve codegen

* Address PR feedback

* QueryModified improvements

* Fix memory write tracking not marking all pages as modified in some cases

* Simplify MarkRegionAsModified

* Remove XML doc for ghost param

* Add back optimization to avoid useless buffer updates

* Add Ryujinx.Cpu project, move MemoryManager there and remove MemoryBlockWrapper

* Some nits

* Do not perform address translation when size is 0

* Address PR feedback and format NativeInterface class

* Remove ghost parameter description

* Update Ryujinx.Cpu to .NET Core 3.1

* Address PR feedback

* Fix build

* Return a well defined value for GetPhysicalAddress with invalid VA, and do not return unmapped ranges as modified

* Typo
2020-05-04 08:54:50 +10:00
..
Optimizations Use a Jump Table for direct and indirect calls/jumps, removing transitions to managed (#975) 2020-03-12 14:20:55 +11:00
Block.cs Use a Jump Table for direct and indirect calls/jumps, removing transitions to managed (#975) 2020-03-12 14:20:55 +11:00
Condition.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
DataOp.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
Decoder.cs Implement a new physical memory manager and replace DeviceMemory (#856) 2020-05-04 08:54:50 +10:00
DecoderHelper.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstDescriptor.cs Set Undefined instruction emitter for Undefined property on InstDescriptor (#957) 2020-02-29 12:12:15 +01:00
InstEmitter.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IntType.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCode32.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCode32Alu.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCode32AluBf.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode32AluReg.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode32AluUx.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode32BImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCode32BReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCode32Mem.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode32MemEx.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode32MemMult.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCode32Simd.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode32SimdImm.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
IOpCode.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeAlu.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeAluImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeAluRs.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeAluRx.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeBImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeCond.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeLit.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
IOpCodeSimd.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32Alu.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32AluBf.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluImm16.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32AluMla.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluReg.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluRsImm.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluRsReg.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluUmull.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32AluUx.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32BImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32BReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32Exception.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32Mem.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32MemImm8.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32MemImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32MemLdEx.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32MemMult.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCode32MemReg.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32MemRsImm.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32MemStEx.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32Sat16.cs Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions (#954) 2020-03-01 07:51:55 +11:00
OpCode32Sat.cs Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions (#954) 2020-03-01 07:51:55 +11:00
OpCode32Simd.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdBase.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdBinary.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdCmpZ.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdCvtFI.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdDupElem.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdDupGP.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdExt.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdImm44.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdImm.cs Implement VMOVL and VORR.I32 AArch32 SIMD instructions (#960) 2020-03-10 16:17:30 +11:00
OpCode32SimdLong.cs Implement VMOVL and VORR.I32 AArch32 SIMD instructions (#960) 2020-03-10 16:17:30 +11:00
OpCode32SimdMemImm.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdMemMult.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdMemPair.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdMemSingle.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdMovGp.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdMovGpDouble.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdMovGpElem.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdReg.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdRegElem.cs Implement VMULL, VMLSL, VRSHR, VQRSHRN, VQRSHRUN AArch32 instructions + other fixes (#977) 2020-03-11 11:49:27 +11:00
OpCode32SimdRegElemLong.cs Implement VMULL, VMLSL, VRSHR, VQRSHRN, VQRSHRUN AArch32 instructions + other fixes (#977) 2020-03-11 11:49:27 +11:00
OpCode32SimdRegLong.cs Implement VMULL, VMLSL, VRSHR, VQRSHRN, VQRSHRUN AArch32 instructions + other fixes (#977) 2020-03-11 11:49:27 +11:00
OpCode32SimdRegS.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdRev.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
OpCode32SimdS.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdSel.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdShImm.cs Implement VMULL, VMLSL, VRSHR, VQRSHRN, VQRSHRUN AArch32 instructions + other fixes (#977) 2020-03-11 11:49:27 +11:00
OpCode32SimdShImmNarrow.cs Implement VMULL, VMLSL, VRSHR, VQRSHRN, VQRSHRUN AArch32 instructions + other fixes (#977) 2020-03-11 11:49:27 +11:00
OpCode32SimdSpecial.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdSqrte.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32SimdTbl.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode32System.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
OpCode.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeAdr.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeAlu.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeAluBinary.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeAluImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeAluRs.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeAluRx.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBfm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBImmAl.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBImmCmp.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBImmCond.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBImmTest.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeBReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeCcmp.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeCcmpImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeCcmpReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeCsel.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeException.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMem.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMemEx.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMemImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMemLit.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMemPair.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMemReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMov.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeMul.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimd.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdCvt.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdExt.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdFcond.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdFmov.cs Implemented fast paths for: (#841) 2019-12-07 13:45:32 +01:00
OpCodeSimdHelper.cs Implement VMOVL and VORR.I32 AArch32 SIMD instructions (#960) 2020-03-10 16:17:30 +11:00
OpCodeSimdImm.cs Implemented fast paths for: (#841) 2019-12-07 13:45:32 +01:00
OpCodeSimdIns.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdMemImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdMemLit.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdMemMs.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdMemPair.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdMemReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdMemSs.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdRegElem.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdRegElemF.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdShImm.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSimdTbl.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeSystem.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeT16.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeT16AluImm8.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeT16BReg.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
OpCodeTable.cs Add Fcvtas_S/V & Fcvtau_S/V. (#1018) 2020-03-24 22:53:49 +01:00
RegisterSize.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
ShiftType.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00