Ryujinx/ChocolArm64/Decoders
gdkchan a694420d11
Implement speculative translation on the CPU (#515)
* Implement speculative translation on the cpu, and change the way how branches to unknown or untranslated addresses works

* Port t0opt changes and other cleanups

* Change namespace from translation related classes to ChocolArm64.Translation, other minor tweaks

* Fix typo

* Translate higher quality code for indirect jumps aswell, and on some cases that were missed when lower quality (tier 0) code was available

* Remove debug print

* Remove direct argument passing optimization, and enable tail calls for BR instructions

* Call delegates directly with Callvirt rather than calling Execute, do not emit calls for tier 0 code

* Remove unused property

* Rename argument on ArmSubroutine delegate
2019-02-04 18:26:05 -03:00
..
BitUtils.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
Block.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
Condition.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
DataOp.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
Decoder.cs Implement speculative translation on the CPU (#515) 2019-02-04 18:26:05 -03:00
DecoderHelper.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
IntType.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCode32.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
IOpCode32Alu.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
IOpCode32BImm.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
IOpCode32BReg.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
IOpCode32Mem.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
IOpCode32MemMult.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
IOpCode64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCodeAlu64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCodeAluImm64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCodeAluRs64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCodeAluRx64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCodeBImm.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
IOpCodeCond64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
IOpCodeLit64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
IOpCodeSimd64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCode32.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCode32Alu.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32AluImm.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32AluRsImm.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32BImm.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32BReg.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32Mem.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32MemImm.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32MemImm8.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode32MemMult.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCode64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeAdr64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeAlu64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeAluImm64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeAluRs64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeAluRx64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeBfm64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeBImm64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeBImmAl64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeBImmCmp64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeBImmCond64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeBImmTest64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeBReg64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeCcmp64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeCcmpImm64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeCcmpReg64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeCsel64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeException64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeMem64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeMemEx64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeMemImm64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeMemLit64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeMemPair64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeMemReg64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeMov64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeMul64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimd64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdCvt64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeSimdExt64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdFcond64.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeSimdFmov64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdImm64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeSimdIns64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdMemImm64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdMemLit64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdMemMs64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeSimdMemPair64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdMemReg64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdMemSs64.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00
OpCodeSimdReg64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdRegElem64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdRegElemF64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdShImm64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSimdTbl64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeSystem64.cs Adjust naming conventions for Ryujinx and ChocolArm64 projects (#484) 2018-10-30 22:43:02 -03:00
OpCodeT16.cs Add ARM32 support on the translator (#561) 2019-01-24 23:59:53 -02:00
OpCodeT16AluImm8.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
OpCodeT16BReg.cs Implement some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -03:00
ShiftType.cs Misc. CPU improvements (#519) 2018-12-10 22:58:52 -02:00