Commit graph

3407 commits

Author SHA1 Message Date
Merry
57de35a821 tests: Enable tests dependent on active frontend 2022-05-28 13:27:14 +01:00
Merry
e44ac5b84c CMakeLists: Allow building on arm64 2022-05-28 13:27:14 +01:00
Merry
2779f24862 emit_x64_packed: Optimize GE flag generation for signed packed add/sub
sum >= 0 is equivalent to sum > -1
2022-05-17 23:50:51 +01:00
Merry
b224fad171 emit_x64_vector_floating_point: Implement workaround for issue 678 2022-05-17 21:06:16 +01:00
Merry
b1dc11a32d exception_handler_macos: Avoid use of deprecated function mach_port_destroy 2022-05-17 20:47:13 +01:00
Merry
e007d94133 backend/x64: Use templated lambda in each use of GenerateLookupTableFromList 2022-05-17 20:25:27 +01:00
Alexandre Bouvier
5e95a23174 cmake: build static externals as PIC 2022-04-23 19:45:33 +01:00
Merry
65ed1e7054 mcl/assert: Flush stderr 2022-04-23 19:37:29 +01:00
Merry
da45f689b9 externals: Update mcl to 0.1.7
Merge commit '5da4668a0d928ffa527ca03642902c92c4b78a64'
2022-04-23 18:39:02 +01:00
Merry
5da4668a0d Squashed 'externals/mcl/' changes from a86a53843..761b7c05e
761b7c05e mcl: Build as PIC
4aad0b5e6 mcl/bit: Simplify sign_extend
0733afd2a mcl: Fix bug in non-template mcl::bit::ones
e26df0587 mcl: bit_field: Fix incorrect argument order in replicate_element

git-subtree-dir: externals/mcl
git-subtree-split: 761b7c05e80d789acf572b52175b852c6509e753
2022-04-23 18:37:57 +01:00
merry
e3199f8f65 mcl: Build as PIC 2022-04-23 18:26:31 +01:00
Merry
57af72a567 CMakeLists: Make mcl a public link dependency 2022-04-19 20:33:26 +01:00
Liam
898f14b772 backend/x64: use mmap for all code allocations on Linux 2022-04-19 18:45:46 +01:00
Merry
78b4ba10c9 Migrate to mcl 2022-04-19 18:05:04 +01:00
Merry
ed9955891f mcl: Fix bug in non-template mcl::bit::ones 2022-04-19 18:05:04 +01:00
Merry
95422b2091 mcl: bit_field: Fix incorrect argument order in replicate_element 2022-04-19 16:53:45 +01:00
Merry
de4154aa18 externals: Remove mp and replace uses with mcl 2022-04-19 16:28:28 +01:00
Merry
f642637971 externals: Add mcl v0.1.3
Merge commit '7eb1d05f63c7ba8df6a203138932ea428ab4aa49' as 'externals/mcl'
2022-04-19 16:27:57 +01:00
Merry
7eb1d05f63 Squashed 'externals/mcl/' content from commit a86a53843
git-subtree-dir: externals/mcl
git-subtree-split: a86a53843f82e4d6ca2f2e1437824495acad2712
2022-04-19 16:27:52 +01:00
Wunkolo
27bbf4501b backend/x64: Use upper EVEX registers as scratch space
AVX512 adds an additional **16** simd registers, for a total of 32 simd
registers, accessible by utilizing EVEX encoded instructions. Rather
than using the `ScratchXmm` function, adding additional
register-pressure and spilling, AVX512-enabled contexts can just
directly use `xmm{16-31}` registers as intermediate scratch registers.
2022-04-06 17:41:55 +01:00
Wunkolo
f0b9cb9ccf tests/A64: Add {S,U}SHL instruction unit tests 2022-04-06 17:41:55 +01:00
merry
644172477e Implement enable_cycle_counting 2022-04-03 16:10:32 +01:00
merry
aac1f6ab1b Implement halt_reason
* Provide reason for halting and atomically update this.
* Allow user to specify a halt reason and return this information on halt.
* Check if halt was requested prior to starting execution.
2022-04-03 15:37:20 +01:00
merry
116297ccd5 common: Add atomic
Implement atomic or operation on u32
2022-04-03 15:30:39 +01:00
merry
f6be6bc14b emit_x64_memory: Appease MSVC
Associated with changes in 8bcd46b7e9
2022-04-02 20:41:34 +01:00
merry
8bcd46b7e9 emit_x64_memory: Ensure 128-bit loads/stores are atomic 2022-04-02 19:33:48 +01:00
merry
e27733464b emit_x64_memory: Always order exclusive accesses 2022-04-02 19:33:15 +01:00
merry
cd91a36613 emit_x64_memory: Fix bug in 16-bit ordered EmitReadMemoryMov 2022-04-02 19:32:46 +01:00
merry
9cadab8fa9 backend/emit_x64_memory: Enforce memory ordering 2022-03-29 20:57:34 +01:00
merry
675efecf47 emit_x64_memory: Combine A32 and A64 memory code 2022-03-29 20:51:50 +01:00
merry
af2d50288f A64/sys_ic: Return to dispatch on possible invalidation 2022-03-27 15:27:34 +01:00
merry
cf0709c7f1 emit_x64_memory: Share Emit{Read,Write}MemoryMove 2022-03-26 16:51:55 +00:00
merry
64adc91ca2 emit_x64_memory: Move EmitFastmemVAddr to common file 2022-03-26 16:49:14 +00:00
merry
18f02e2088 emit_x64_memory: Move EmitVAddrLookup to common file 2022-03-26 16:46:06 +00:00
merry
3d657c450a emit_x64_memory: Share EmitDetectMisalignedVAddr 2022-03-26 16:09:56 +00:00
merry
fb586604b4 emit_x64_memory: Share constants 2022-03-26 16:05:03 +00:00
merry
5cf2d59913 A32: Add AccType information and propagate to IR-level 2022-03-26 15:38:10 +00:00
merry
614ecb7020 A64: Propagate AccType information to IR-level 2022-03-26 15:38:10 +00:00
merry
879f211686 ir/value: Add AccType to Value 2022-03-26 15:38:10 +00:00
Alexandre Bouvier
9d369436d8 cmake: Fix unicorn and llvm 2022-03-22 20:27:01 +00:00
merry
7b69c87ffc fuzz_arm: Add offset thumb instruction test
Test thumb instructions when (PC % 4) == 2
2022-03-20 21:05:55 +00:00
merry
c78b82dd2c vfp: VLDM is UNPREDICABLE when n is R15 in thumb mode 2022-03-20 20:52:11 +00:00
Sergi Granell
0ec4a23710 thumb32: Implement LDA and STL
Note that those are ARMv8 additions to the Thumb instruction set.
2022-03-20 20:16:27 +00:00
merry
e1a266b929 A32: Implement SHA256SU1 2022-03-20 13:59:18 +00:00
merry
ab4c6cfefb A32: Implement SHA256SU0 2022-03-20 13:59:18 +00:00
merry
c022a778d6 A32: Implement SHA256H, SHA256H2 2022-03-20 13:59:18 +00:00
merry
bb713194a0 backend/x64: Implement SHA256 polyfills 2022-03-20 13:59:18 +00:00
merry
98cff8dd0d IR: Implement SHA256MessageSchedule{0,1} 2022-03-20 13:59:18 +00:00
merry
f0a4bf1f6a IR: Implement SHA256Hash 2022-03-20 13:59:18 +00:00
merry
81536e4630 github: Use GCC 10 on Ubuntu 2022-03-20 13:59:18 +00:00