Ryujinx/ARMeilleure/Decoders
FICTURE7 89791ba68d
Add inlined on translation call counting (#2190)
* Add EntryTable<TEntry>

* Add on translation call counting

* Add Counter

* Add PPTC support

* Make Counter a generic & use a 32-bit counter instead

* Return false on overflow

* Set PPTC version

* Print more information about the rejit queue

* Make Counter<T> disposable

* Remove Block.TailCall since it is not used anymore

* Apply suggestions from code review

Address gdkchan's feedback

Co-authored-by: gdkchan <gab.dark.100@gmail.com>

* Fix more stale docs

* Remove rejit requests queue logging

* Make Counter<T> finalizable

Most certainly quite an odd use case.

* Make EntryTable<T>.TryAllocate set entry to default

* Re-trigger CI

* Dispose Counters before they hit the finalizer queue

* Re-trigger CI

Just for good measure...

* Make EntryTable<T> expandable

* EntryTable is now expandable instead of being a fixed slab.
* Remove EntryTable<T>.TryAllocate
* Remove Counter<T>.TryCreate

Address LDj3SNuD's feedback

* Apply suggestions from code review

Address LDj3SNuD's feedback

Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>

* Remove useless return

* POH approach, but the sequel

* Revert "POH approach, but the sequel"

This reverts commit 5f5abaa24735726ff2db367dc74f98055d4f4cba.

The sequel got shelved

* Add extra documentation

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2021-04-18 23:43:53 +02:00
..
Optimizations Add inlined on translation call counting (#2190) 2021-04-18 23:43:53 +02:00
Block.cs Add inlined on translation call counting (#2190) 2021-04-18 23:43:53 +02: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 PPTC Follow-up. (#1712) 2020-12-17 20:32:09 +01: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
IOpCode.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
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
OpCode.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32Alu.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluBf.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluImm16.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluMla.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluRsImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluRsReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluUmull.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32AluUx.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32BImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32BReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32Exception.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32Mem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemImm8.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemLdEx.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemMult.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemRsImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32MemStEx.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32Sat.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32Sat16.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32Simd.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdBase.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdBinary.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdCmpZ.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdCvtFI.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdDupElem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdDupGP.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdExt.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdImm44.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdLong.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMemImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMemMult.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMemPair.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMemSingle.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMovGp.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMovGpDouble.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdMovGpElem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdRegElem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdRegElemLong.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdRegLong.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdRegS.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdRegWide.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdRev.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdS.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdSel.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdShImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdShImmLong.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdShImmNarrow.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdSpecial.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdSqrte.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32SimdTbl.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCode32System.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeAdr.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeAlu.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeAluBinary.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeAluImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeAluRs.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeAluRx.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBfm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBImmAl.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBImmCmp.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBImmCond.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBImmTest.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeBReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeCcmp.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeCcmpImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeCcmpReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeCsel.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeException.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMemEx.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMemImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMemLit.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMemPair.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMemReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMov.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeMul.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimd.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdCvt.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdExt.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdFcond.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdFmov.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdHelper.cs Implement VMOVL and VORR.I32 AArch32 SIMD instructions (#960) 2020-03-10 16:17:30 +11:00
OpCodeSimdImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdIns.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdMemImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdMemLit.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdMemMs.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdMemPair.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdMemReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdMemSs.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdRegElem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdRegElemF.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdShImm.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSimdTbl.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeSystem.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeT16.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeT16AluImm8.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeT16BReg.cs Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626) 2020-10-21 09:13:44 -03:00
OpCodeTable.cs Add Sqdmulh_Ve & Sqrdmulh_Ve Inst.s with Tests. (#2139) 2021-03-25 23:33:32 +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