GreemDev-Ryujinx/ARMeilleure/Instructions
jduncanator 68e15c1a74
Implement Fast Paths for most A32 SIMD instructions (#952)
* Begin work on A32 SIMD Intrinsics

* More instructions, some cleanup.

* Intrinsics for Move instructions (zip etc)

These pass the existing tests.

* Intrinsics for some of Cvt

While doing this I noticed that the conversion for int/fp was incorrect
in the slow path. I'll fix this in the original repo.

* Intrinsics for more Arithmetic instructions.

* Intrinsics for Vext

* Fix VEXT Intrinsic for double words.

* Use InsertPs to move scalar values.

* Cleanup, fix VPADD.f32 and VMIN signed integer.

* Cleanup, add SSE2 support for scalar insert.

Works similarly to the IR scalar insert, but obviously this one works
directly on V128.

* Minor cleanup.

* Enable intrinsic for FP64 to integer conversion.

* Address feedback apart from splitting out intrinsic float abs

Also: bad VREV encodings as undefined rather than throwing in translation.

* Move float abs to helper, fix bug with cvt

* Rename opc2 & 3 to match A32 docs, use ArgumentOutOfRangeException appropriately.

* Get name of variable at compilation rather than string literal.

* Use correct double sign mask.
2020-03-05 11:41:33 +11:00
..
CryptoHelper.cs
DelegateTypes.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitAlu.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitAlu32.cs Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions (#954) 2020-03-01 07:51:55 +11:00
InstEmitAluHelper.cs Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions (#954) 2020-03-01 07:51:55 +11:00
InstEmitBfm.cs
InstEmitCcmp.cs
InstEmitCsel.cs
InstEmitDiv.cs
InstEmitException.cs
InstEmitException32.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitFlow.cs
InstEmitFlow32.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitFlowHelper.cs
InstEmitHash.cs
InstEmitHelper.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitMemory.cs
InstEmitMemory32.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitMemoryEx.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitMemoryEx32.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitMemoryExHelper.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitMemoryHelper.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitMove.cs
InstEmitMul.cs
InstEmitMul32.cs Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions (#954) 2020-03-01 07:51:55 +11:00
InstEmitSimdArithmetic.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdArithmetic32.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdCmp.cs Implement FACGE and FACGT (Scalar and Vector) AArch64 SIMD instructions (#956) 2020-03-01 07:51:17 +11:00
InstEmitSimdCmp32.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdCrypto.cs
InstEmitSimdCvt.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdCvt32.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdHash.cs
InstEmitSimdHelper.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdHelper32.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdLogical.cs Implemented fast paths for: (#846) 2019-12-29 22:22:47 -03:00
InstEmitSimdLogical32.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdMemory.cs
InstEmitSimdMemory32.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitSimdMove.cs Implemented fast paths for: (#846) 2019-12-29 22:22:47 -03:00
InstEmitSimdMove32.cs Implement Fast Paths for most A32 SIMD instructions (#952) 2020-03-05 11:41:33 +11:00
InstEmitSimdShift.cs Implemented fast paths for: (#846) 2019-12-29 22:22:47 -03:00
InstEmitSimdShift32.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
InstEmitSystem.cs Add Mrs & Msr (Nzcv) Inst., with Tests. (#819) 2019-11-14 13:08:07 +11:00
InstEmitSystem32.cs Don't decode blocks starting outside mapped memory & undefined instead of throw on invalid sysreg coprocessor (#964) 2020-03-04 16:25:27 -03:00
InstName.cs Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions (#954) 2020-03-01 07:51:55 +11:00
NativeInterface.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
SoftFallback.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
SoftFloat.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00