Commit graph

438 commits

Author SHA1 Message Date
Merry
e74e03010b [TEST] test_generator: Test A64 2022-12-03 11:16:26 -05:00
Merry
01a9a12c84 test_generator: Filter out for unimplemented IR instructions 2022-12-03 11:16:26 -05:00
Merry
46aef36a4f test_generator: A64 2022-12-03 11:16:26 -05:00
Liam
21b4211414 Add test for isolated GetNZCVFromOp 2022-12-03 11:16:26 -05:00
Liam
16101049f3 Fix EXTR (flipped rgister order) 2022-12-03 11:16:26 -05:00
Merry
038b728797 emit_x64_data_processing: Detect overflow on division 2022-11-29 14:15:12 +00:00
Alexandre Bouvier
905d822810 cmake: multiple simplifications 2022-11-26 15:52:30 +00:00
Merry
5f753e483f test_generator: Allow rerunning jit 2022-11-08 21:40:45 +00:00
Merry
7dbd87ba2d backend/arm64/a32_address_space: Terminate early if halted prior to execution beginning 2022-11-08 21:40:45 +00:00
FreddyFunk
64a5ca7c2e tests: remove unused default iterations in TestThumb 2022-10-18 15:04:30 +01:00
Merry
d2deb496da tests/A32: Add coprocessor tests 2022-10-18 15:04:30 +01:00
Merry
f4747aea10 test_generator: Increase iterations 2022-10-18 15:04:30 +01:00
Merry
806a50703b test_generator: Test ASIMD 2022-10-18 15:04:30 +01:00
Merry
bbf0179d30 test_generator: Enable vfp testing 2022-10-18 15:04:30 +01:00
Merry
208b19b89a backend/arm64: FPCR/FPSR handling 2022-10-18 15:04:30 +01:00
Merry
3b98af5810 test_generator: Generate Arm instructions 2022-10-18 15:04:30 +01:00
Merry
f84e489969 test_generator: Expand testing to thumb32 2022-10-18 15:04:30 +01:00
Merry
78e266a869 test_generator: Increase iterations 2022-10-18 15:04:30 +01:00
Merry
3e5309bd96 tests: Add test generator 2022-10-18 15:04:30 +01:00
Merry
ecacb6cdc6 tests/rand_int: Expose PRNG 2022-10-18 15:04:30 +01:00
merry
3cb939e70b fuzz_arm: Avoid backwards jumps that may jump into code 2022-08-08 21:05:00 +01:00
Merry
b002419993 tests/{a32,a64}_unicorn: Avoid use of deprecated fmt API 2022-07-26 12:04:52 +01:00
Merry
6bcc424e1a emit_x64_vector: Ensure FPSR.QC is set even if output is invalidated 2022-07-20 19:44:39 +01:00
Merry
da2b1c5724 a32_get_set_elimination_pass: Convert NZ to NZC 2022-07-20 16:45:14 +01:00
Merry
6f106602ba a32_get_set_elimination_pass: Add option to disable NZC -> NZ conversion 2022-07-20 16:42:39 +01:00
Merry
cf08130f2c A32: Condense flag handling
Remove individual flag handlers, and handle them in chuks where able, to produce more optimal code.
2022-07-19 22:05:13 +01:00
Merry
e9b550de3a fuzz_arm: Correct unicorn overrun recovery code 2022-07-14 12:30:53 +01:00
Merry
cd85b7fdaa emit_x64: Fix bugs in fast dispatcher
* We failed to invalidate entries if there are no patches required for a location descriptor.
* Bug in A64 hashing code (rbx instead of rbp).
* Bug in A32 and A64 lookup code (inconsistent choice of key: PC vs IR::LocationDescriptor).
* Test case added.
2022-07-11 16:06:54 +01:00
Merry
d40557b751 A32/A64: Allow std::nullopt from MemoryReadCode
Raise a fault at runtime if this block is executed
2022-06-21 21:41:27 +01:00
Merry
11d12d0b84 x64_cpu_info: Update test for latest xbyak 2022-06-05 14:03:57 +01:00
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
57af72a567 CMakeLists: Make mcl a public link dependency 2022-04-19 20:33:26 +01:00
Merry
78b4ba10c9 Migrate to mcl 2022-04-19 18:05:04 +01:00
Merry
de4154aa18 externals: Remove mp and replace uses with mcl 2022-04-19 16:28:28 +01:00
Wunkolo
f0b9cb9ccf tests/A64: Add {S,U}SHL instruction unit tests 2022-04-06 17:41:55 +01: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
dc3e70c552 fuzz_arm: Sometimes we have to step more to sync up with unicorn
This happens if unicorn happens to jump back on an IT instruction.
2022-02-27 19:51:09 +00:00
Merry
4fa646bae5 a32_unicorn: Throw on error to trigger SCOPE_EXIT code 2022-02-15 15:20:01 +00:00
Merry
c4087d68bc fuzz_arm: Don't generate thumb32_MSR_reg: Unicorn steps by 2 instead of 4 2022-02-15 15:13:41 +00:00
Merry
88906b642c fuzz_arm: Handle unicorn overrun on internal jump 2022-02-15 14:11:02 +00:00
merry
76ec1afdad fuzz_arm: Ensure that FPSCR.QC is tested 2022-02-12 22:07:26 +00:00
merry
473bbd422e test_arm_instructions: Add vmsr/vcmp/vmrs test 2022-02-12 21:43:05 +00:00
Morph
28714ee75a general: Rename files with duplicate names
In MSVC, having files with identical filenames will result into massive slowdowns when compiling.
The approach I have taken to resolve this is renaming the identically named files in frontend/(A32, A64) to (a32, a64)_filename.cpp/h
2021-12-23 11:38:58 +00:00
Wunkolo
69b831d7d2 tests: Add {S,V}ADD{V,P} tests
These are the instructions emitted for each variant of the `vaddv{q}_{s}{8,16,32,64}` intrinsic.
2021-09-27 19:54:11 +01:00
Macchiarch
f88aa570a3
cpu_info: remove tSSE4a and tSSE5 (#643)
tSSE4a and tSSE5 have been removed from xbyak
2021-09-06 20:49:10 +01:00
Merry
2bc86209bd catch: Correct include directory 2021-08-08 12:52:55 +01:00
Wunkolo
f171ce7859 tests: Add FMLA(lane) test
Math operations such as Matrix multiplication utilize these particular
instructions enough that there should be some unit tests for thesein particular.
The lane-splatting form of FMUL and FMLA instructions are of particular
interest and I've found them to be very common in retail game binaries
such as Pokemon Sword.

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/coding-for-neon---part-3-matrix-multiplication

I'm primarily adding this unit test so that I can ensure compatibility
while I tune and optimize them.
2021-08-07 23:03:57 +01:00
Merry
07b5734fb0 xbyak: Correct xbyak include directory
xbyak is intended to be installed in /usr/local/include/xbyak.
Since we desire not to install xbyak before using it, we copy the headers
to the appropriate directory structure and use that instead
2021-08-07 15:13:49 +01:00
Merry
31cefb22a0 fuzz_with_unicorn: Correct printing of vectors 2021-08-06 15:29:43 +01:00