Ryujinx/ChocolArm64/Decoders
gdkchan c1bdf19061
Implement some ARM32 memory instructions and CMP (#565)
* Implement ARM32 memory instructions: LDM, LDR, LDRB, LDRD, LDRH, LDRSB, LDRSH, STM, STR, STRB, STRD, STRH (immediate and register + immediate variants), implement CMP (immediate and register shifted by immediate variants)

* Rename some opcode classes and flag masks for consistency

* Fix a few suboptimal ARM32 codegen issues, only loads should be considered on decoder when checking if Rt == PC, and only NZCV flags should be considered for comparison optimizations

* Take into account Rt2 for LDRD instructions aswell when checking if the instruction changes PC

* Re-align arm32 instructions on the opcode table
2019-01-29 13:06:11 -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 some ARM32 memory instructions and CMP (#565) 2019-01-29 13:06:11 -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