aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Cpu/LightningJit/Arm32/InstName.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Cpu/LightningJit/Arm32/InstName.cs')
-rw-r--r--src/Ryujinx.Cpu/LightningJit/Arm32/InstName.cs562
1 files changed, 562 insertions, 0 deletions
diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/InstName.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/InstName.cs
new file mode 100644
index 00000000..2ee67aa0
--- /dev/null
+++ b/src/Ryujinx.Cpu/LightningJit/Arm32/InstName.cs
@@ -0,0 +1,562 @@
+namespace Ryujinx.Cpu.LightningJit.Arm32
+{
+ enum InstName
+ {
+ AdcI,
+ AdcR,
+ AdcRr,
+ AddI,
+ AddR,
+ AddRr,
+ AddSpI,
+ AddSpR,
+ Adr,
+ Aesd,
+ Aese,
+ Aesimc,
+ Aesmc,
+ AndI,
+ AndR,
+ AndRr,
+ B,
+ Bfc,
+ Bfi,
+ BicI,
+ BicR,
+ BicRr,
+ Bkpt,
+ BlxR,
+ BlI,
+ Bx,
+ Bxj,
+ Cbnz,
+ Clrbhb,
+ Clrex,
+ Clz,
+ CmnI,
+ CmnR,
+ CmnRr,
+ CmpI,
+ CmpR,
+ CmpRr,
+ Cps,
+ Crc32,
+ Crc32c,
+ Csdb,
+ Dbg,
+ Dcps1,
+ Dcps2,
+ Dcps3,
+ Dmb,
+ Dsb,
+ EorI,
+ EorR,
+ EorRr,
+ Eret,
+ Esb,
+ Fldmx,
+ Fstmx,
+ Hlt,
+ Hvc,
+ Isb,
+ It,
+ Lda,
+ Ldab,
+ Ldaex,
+ Ldaexb,
+ Ldaexd,
+ Ldaexh,
+ Ldah,
+ LdcI,
+ LdcL,
+ Ldm,
+ Ldmda,
+ Ldmdb,
+ Ldmib,
+ LdmE,
+ LdmU,
+ Ldrbt,
+ LdrbI,
+ LdrbL,
+ LdrbR,
+ LdrdI,
+ LdrdL,
+ LdrdR,
+ Ldrex,
+ Ldrexb,
+ Ldrexd,
+ Ldrexh,
+ Ldrht,
+ LdrhI,
+ LdrhL,
+ LdrhR,
+ Ldrsbt,
+ LdrsbI,
+ LdrsbL,
+ LdrsbR,
+ Ldrsht,
+ LdrshI,
+ LdrshL,
+ LdrshR,
+ Ldrt,
+ LdrI,
+ LdrL,
+ LdrR,
+ Mcr,
+ Mcrr,
+ Mla,
+ Mls,
+ Movt,
+ MovI,
+ MovR,
+ MovRr,
+ Mrc,
+ Mrrc,
+ Mrs,
+ MrsBr,
+ MsrBr,
+ MsrI,
+ MsrR,
+ Mul,
+ MvnI,
+ MvnR,
+ MvnRr,
+ Nop,
+ OrnI,
+ OrnR,
+ OrrI,
+ OrrR,
+ OrrRr,
+ Pkh,
+ PldI,
+ PldL,
+ PldR,
+ PliI,
+ PliR,
+ Pop,
+ Pssbb,
+ Push,
+ Qadd,
+ Qadd16,
+ Qadd8,
+ Qasx,
+ Qdadd,
+ Qdsub,
+ Qsax,
+ Qsub,
+ Qsub16,
+ Qsub8,
+ Rbit,
+ Rev,
+ Rev16,
+ Revsh,
+ Rfe,
+ RsbI,
+ RsbR,
+ RsbRr,
+ RscI,
+ RscR,
+ RscRr,
+ Sadd16,
+ Sadd8,
+ Sasx,
+ Sb,
+ SbcI,
+ SbcR,
+ SbcRr,
+ Sbfx,
+ Sdiv,
+ Sel,
+ Setend,
+ Setpan,
+ Sev,
+ Sevl,
+ Sha1c,
+ Sha1h,
+ Sha1m,
+ Sha1p,
+ Sha1su0,
+ Sha1su1,
+ Sha256h,
+ Sha256h2,
+ Sha256su0,
+ Sha256su1,
+ Shadd16,
+ Shadd8,
+ Shasx,
+ Shsax,
+ Shsub16,
+ Shsub8,
+ Smc,
+ Smlabb,
+ Smlad,
+ Smlal,
+ Smlalbb,
+ Smlald,
+ Smlawb,
+ Smlsd,
+ Smlsld,
+ Smmla,
+ Smmls,
+ Smmul,
+ Smuad,
+ Smulbb,
+ Smull,
+ Smulwb,
+ Smusd,
+ Srs,
+ Ssat,
+ Ssat16,
+ Ssax,
+ Ssbb,
+ Ssub16,
+ Ssub8,
+ Stc,
+ Stl,
+ Stlb,
+ Stlex,
+ Stlexb,
+ Stlexd,
+ Stlexh,
+ Stlh,
+ Stm,
+ Stmda,
+ Stmdb,
+ Stmib,
+ StmU,
+ Strbt,
+ StrbI,
+ StrbR,
+ StrdI,
+ StrdR,
+ Strex,
+ Strexb,
+ Strexd,
+ Strexh,
+ Strht,
+ StrhI,
+ StrhR,
+ Strt,
+ StrI,
+ StrR,
+ SubI,
+ SubR,
+ SubRr,
+ SubSpI,
+ SubSpR,
+ Svc,
+ Sxtab,
+ Sxtab16,
+ Sxtah,
+ Sxtb,
+ Sxtb16,
+ Sxth,
+ Tbb,
+ TeqI,
+ TeqR,
+ TeqRr,
+ Tsb,
+ TstI,
+ TstR,
+ TstRr,
+ Uadd16,
+ Uadd8,
+ Uasx,
+ Ubfx,
+ Udf,
+ Udiv,
+ Uhadd16,
+ Uhadd8,
+ Uhasx,
+ Uhsax,
+ Uhsub16,
+ Uhsub8,
+ Umaal,
+ Umlal,
+ Umull,
+ Uqadd16,
+ Uqadd8,
+ Uqasx,
+ Uqsax,
+ Uqsub16,
+ Uqsub8,
+ Usad8,
+ Usada8,
+ Usat,
+ Usat16,
+ Usax,
+ Usub16,
+ Usub8,
+ Uxtab,
+ Uxtab16,
+ Uxtah,
+ Uxtb,
+ Uxtb16,
+ Uxth,
+ Vaba,
+ Vabal,
+ VabdlI,
+ VabdF,
+ VabdI,
+ Vabs,
+ Vacge,
+ Vacgt,
+ Vaddhn,
+ Vaddl,
+ Vaddw,
+ VaddF,
+ VaddI,
+ VandR,
+ VbicI,
+ VbicR,
+ Vbif,
+ Vbit,
+ Vbsl,
+ Vcadd,
+ VceqI,
+ VceqR,
+ VcgeI,
+ VcgeR,
+ VcgtI,
+ VcgtR,
+ VcleI,
+ Vcls,
+ VcltI,
+ Vclz,
+ Vcmla,
+ VcmlaS,
+ Vcmp,
+ Vcmpe,
+ Vcnt,
+ VcvtaAsimd,
+ VcvtaVfp,
+ Vcvtb,
+ VcvtbBfs,
+ VcvtmAsimd,
+ VcvtmVfp,
+ VcvtnAsimd,
+ VcvtnVfp,
+ VcvtpAsimd,
+ VcvtpVfp,
+ VcvtrIv,
+ Vcvtt,
+ VcvttBfs,
+ VcvtBfs,
+ VcvtDs,
+ VcvtHs,
+ VcvtIs,
+ VcvtIv,
+ VcvtVi,
+ VcvtXs,
+ VcvtXv,
+ Vdiv,
+ Vdot,
+ VdotS,
+ VdupR,
+ VdupS,
+ Veor,
+ Vext,
+ Vfma,
+ Vfmal,
+ VfmalS,
+ VfmaBf,
+ VfmaBfs,
+ Vfms,
+ Vfmsl,
+ VfmslS,
+ Vfnma,
+ Vfnms,
+ Vhadd,
+ Vhsub,
+ Vins,
+ Vjcvt,
+ Vld11,
+ Vld1A,
+ Vld1M,
+ Vld21,
+ Vld2A,
+ Vld2M,
+ Vld31,
+ Vld3A,
+ Vld3M,
+ Vld41,
+ Vld4A,
+ Vld4M,
+ Vldm,
+ VldrI,
+ VldrL,
+ Vmaxnm,
+ VmaxF,
+ VmaxI,
+ Vminnm,
+ VminF,
+ VminI,
+ VmlalI,
+ VmlalS,
+ VmlaF,
+ VmlaI,
+ VmlaS,
+ VmlslI,
+ VmlslS,
+ VmlsF,
+ VmlsI,
+ VmlsS,
+ Vmmla,
+ Vmovl,
+ Vmovn,
+ Vmovx,
+ VmovD,
+ VmovH,
+ VmovI,
+ VmovR,
+ VmovRs,
+ VmovS,
+ VmovSr,
+ VmovSs,
+ Vmrs,
+ Vmsr,
+ VmullI,
+ VmullS,
+ VmulF,
+ VmulI,
+ VmulS,
+ VmvnI,
+ VmvnR,
+ Vneg,
+ Vnmla,
+ Vnmls,
+ Vnmul,
+ VornR,
+ VorrI,
+ VorrR,
+ Vpadal,
+ Vpaddl,
+ VpaddF,
+ VpaddI,
+ VpmaxF,
+ VpmaxI,
+ VpminF,
+ VpminI,
+ Vqabs,
+ Vqadd,
+ Vqdmlal,
+ Vqdmlsl,
+ Vqdmulh,
+ Vqdmull,
+ Vqmovn,
+ Vqneg,
+ Vqrdmlah,
+ Vqrdmlsh,
+ Vqrdmulh,
+ Vqrshl,
+ Vqrshrn,
+ VqshlI,
+ VqshlR,
+ Vqshrn,
+ Vqsub,
+ Vraddhn,
+ Vrecpe,
+ Vrecps,
+ Vrev16,
+ Vrev32,
+ Vrev64,
+ Vrhadd,
+ VrintaAsimd,
+ VrintaVfp,
+ VrintmAsimd,
+ VrintmVfp,
+ VrintnAsimd,
+ VrintnVfp,
+ VrintpAsimd,
+ VrintpVfp,
+ VrintrVfp,
+ VrintxAsimd,
+ VrintxVfp,
+ VrintzAsimd,
+ VrintzVfp,
+ Vrshl,
+ Vrshr,
+ Vrshrn,
+ Vrsqrte,
+ Vrsqrts,
+ Vrsra,
+ Vrsubhn,
+ Vsdot,
+ VsdotS,
+ Vsel,
+ Vshll,
+ VshlI,
+ VshlR,
+ Vshr,
+ Vshrn,
+ Vsli,
+ Vsmmla,
+ Vsqrt,
+ Vsra,
+ Vsri,
+ Vst11,
+ Vst1M,
+ Vst21,
+ Vst2M,
+ Vst31,
+ Vst3M,
+ Vst41,
+ Vst4M,
+ Vstm,
+ Vstr,
+ Vsubhn,
+ Vsubl,
+ Vsubw,
+ VsubF,
+ VsubI,
+ VsudotS,
+ Vswp,
+ Vtbl,
+ Vtrn,
+ Vtst,
+ Vudot,
+ VudotS,
+ Vummla,
+ Vusdot,
+ VusdotS,
+ Vusmmla,
+ Vuzp,
+ Vzip,
+ Wfe,
+ Wfi,
+ Yield,
+ }
+
+ static class InstNameExtensions
+ {
+ public static bool IsCall(this InstName name)
+ {
+ return name == InstName.BlI || name == InstName.BlxR;
+ }
+
+ public static bool IsSystem(this InstName name)
+ {
+ switch (name)
+ {
+ case InstName.Mcr:
+ case InstName.Mcrr:
+ case InstName.Mrc:
+ case InstName.Mrs:
+ case InstName.MrsBr:
+ case InstName.MsrBr:
+ case InstName.MsrI:
+ case InstName.MsrR:
+ case InstName.Mrrc:
+ case InstName.Svc:
+ return true;
+ }
+
+ return false;
+ }
+
+ public static bool IsSystemOrCall(this InstName name)
+ {
+ return name.IsSystem() || name.IsCall();
+ }
+ }
+}