1270 Commits

Author SHA1 Message Date
MerryMage
68d6a1276b A64: Implement MLA (by element) 2018-04-19 00:04:52 +01:00
Lioncash
7340c36ae0 A64: Implement ABS (scalar) 2018-04-19 00:03:08 +01:00
Lioncash
c196c73e17 A64: Implement SHA256SU0 2018-04-19 00:00:39 +01:00
Lioncash
21790dcf98 CMake: Make FindUnicorn introduce a unicorn target
Makes the find module do all the work of properly setting up the target instead of needing to do it in the main CMakeLists file.
2018-04-18 23:59:54 +01:00
Lioncash
cb3b885025 A64: Implement SHA1M 2018-04-16 07:47:22 +01:00
Lioncash
4381ded969 A64: Implement SHA1P 2018-04-16 07:47:22 +01:00
Lioncash
dc5c2508a5 A64: Implement scalar variants of CMEQ, CMGT, and CMGE zero comparison instructions
These can trivially use the ScalarCompare helper function.
2018-04-15 13:38:42 +01:00
Lioncash
3a71801f10 A64: Implement scalar variant of NEG 2018-04-15 13:37:07 +01:00
Lioncash
f8e387f13f simd: Relocate REV16, REV32 and REV64 vector variants to the proper file
These aren't scalar instruction variants.
2018-04-15 13:37:07 +01:00
Lioncash
e23f6b666e A64: Implement CMEQ (register, scalar) 2018-04-15 11:31:20 +01:00
Lioncash
5f879af788 A64: Implement CMHS (register, scalar) 2018-04-15 11:31:20 +01:00
Lioncash
41e4b3e286 A64: Implement CMHI (register, scalar) 2018-04-15 11:31:20 +01:00
Lioncash
03f6247239 A64: Implement CMGE (register, scalar) 2018-04-15 11:31:20 +01:00
Lioncash
62ddc0631e A64: Implement CMGT (register, scalar) 2018-04-15 11:31:20 +01:00
Lioncash
cd1f7894b3 A64: Implement SHA1C 2018-04-15 10:32:03 +01:00
Lioncash
5315e63a2e A64: Implement SLI (scalar) 2018-04-15 08:56:09 +01:00
Lioncash
37051e9cb6 A64: Implement SRI (scalar) 2018-04-15 08:56:09 +01:00
Lioncash
1336e1a4ec unicorn: Be explicit about casting away const to const-incorrect APIs
Uses C++ casts which silence relevant warnings in Xcode 9.3

Also migrates relevant Read function equivalents over for consistency.
2018-04-15 08:54:36 +01:00
Lioncash
f9fbeb40bc general: Remove unused lambda captures
Resolves warnings that occur in Xcode 9.3
2018-04-15 08:53:23 +01:00
Lioncash
ea0435eee6 A64: Implement SHA1SU1 2018-04-14 08:06:15 +01:00
Lioncash
83e20f24f7 A64: Implement SHA1SU0 2018-04-14 08:06:15 +01:00
Lioncash
a48ff2b9e2 A64: Implement TRN2 2018-04-14 08:01:52 +01:00
Lioncash
9442cc8afa A64: Implement TRN1 2018-04-14 08:01:52 +01:00
Lioncash
d9ff5b1a9a A64: Implement SSRA (scalar) 2018-04-13 16:05:18 +01:00
Lioncash
fb5d5f8881 A64: Implement SSHR (scalar) 2018-04-13 16:05:18 +01:00
Lioncash
f0ecc27f2f A64: Implement USRA (scalar) 2018-04-13 16:05:18 +01:00
Lioncash
1e71835cb1 A64: Implement USHR (scalar) 2018-04-13 16:05:18 +01:00
Lioncash
746969bbe6 A64: Implement SHL (scalar) 2018-04-13 16:05:18 +01:00
Lioncash
a90cddaa05 A64: Implement SM3PARTW1 2018-04-13 15:22:10 +01:00
Lioncash
7570ea1a33 simd_sha512: Simplify RAX1
Now that the vector rotation helpers are in, replace the explicit
shifting with the relevant helper function that does the same thing.

Simply tidies up code; no behavioral changes are made.
2018-04-13 06:31:09 +01:00
Lioncash
c7c2fa2b66 A64: Implement SM3PARTW2 2018-04-12 09:21:51 +01:00
Lioncash
987ca9566b ir: Add helper functions for vector rotation 2018-04-12 09:21:51 +01:00
Lioncash
066cf3e7a7 A64: Implement SM3TT2B 2018-04-10 22:22:56 +01:00
Lioncash
bb7c0ab1ba A64: Implement SM3TT2A 2018-04-10 22:22:56 +01:00
Lioncash
3f81c90013 A64: Implement SM3TT1B 2018-04-10 18:30:33 +01:00
Lioncash
3e7483e1db A64: Implement SM3TT1A 2018-04-10 16:56:17 +01:00
Lioncash
8e739a73dc simd_shift_by_immediate: Merge signed/unsigned helper functions
Gets rid of a little more code duplication.
2018-04-10 16:43:59 +01:00
Lioncash
5f8f4d106a A64: Implement SM3SS1 2018-04-08 11:02:54 +01:00
Lioncash
c9c6ae101e A64: Implement SRI (vector) 2018-04-08 11:01:08 +01:00
Lioncash
4b9bdb2270 A64: Implement SLI (vector) 2018-04-08 11:01:08 +01:00
Lioncash
4e8fd68308 A64: Implement SRSRA (vector) 2018-04-08 10:55:27 +01:00
Lioncash
b3834adc2e A64: Implement SRSHR (vector) 2018-04-08 10:55:27 +01:00
MerryMage
6febae5f8e imm: Add additional bit position checks to Imm::Bits 2018-04-08 10:42:23 +01:00
MerryMage
5bc164adb9 math_util: rvalue references for std::forward 2018-04-08 10:37:11 +01:00
Lioncash
3fdaf77c7a A64: Implement SSUBL/SSUBL2 2018-04-07 15:20:58 +01:00
Lioncash
c669f091e6 A64: Implement SADDL/SADDL2 2018-04-07 15:20:58 +01:00
Lioncash
c144cb39c9 A64: Implement USUBL/USUBL2 2018-04-07 15:20:58 +01:00
Lioncash
14bc8bce7f A64: Implement UADDL/UADDL2 2018-04-07 15:20:58 +01:00
Lioncash
a000cb6e36 simd_shift_by_immediate: Factor out common code in shift instructions
Gets rid of partial duplication of the same code for instructions that only have a small behavior difference to them.

e.g. The only difference between SSHR and SSRA is that SSRA adds an accumulator before storing the result.
2018-04-07 15:20:28 +01:00
Lioncash
436eddcfa1 A64: Implement URSRA (vector) 2018-04-04 14:17:43 +01:00