Ryan Houdek
67f13ba927
Adds sign extending address bug that was detected when testing #3421
...
Doesn't quite match the libc code directly because it uses `[gs:eax]`
with both having the sign bit set and we can't deal with that with ASM
tests. So match the behaviour in a different way.
2024-02-27 19:57:22 -08:00
Ryan Houdek
dc5239c003
InstCountCI: Update for previous fix
2024-02-27 19:57:06 -08:00
Ryan Houdek
2f9449cb5a
Merge pull request #3465 from alyssarosenzweig/icci/pa
...
InstCountCI: enable preserve_all
2024-02-27 16:39:46 -08:00
Alyssa Rosenzweig
fcebad51bd
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-27 12:04:29 -04:00
Alyssa Rosenzweig
49e798ab2b
Merge pull request #3461 from alyssarosenzweig/opt/sbc
...
Optimize SBC
2024-02-27 11:29:45 -04:00
Ryan Houdek
854fd70735
InstcountCI: Add a monster of a game block
...
Doing very little work with a bunch of instructions.
Hottest block in the Windows version of Psychonauts, it's just doing a
matrix swizzle but in the worst possible way.
2024-02-27 01:51:20 -08:00
Ryan Houdek
1c184997e7
InstcountCI: Update for vixl update
2024-02-26 23:17:52 -08:00
Ryan Houdek
946c805d84
Merge pull request #3459 from Sonicadvance1/fix_591
...
Capture a 64-bit process trying to jump to 32-bit syscall handler
2024-02-26 21:57:03 -08:00
Ryan Houdek
118b8b200e
Merge pull request #3458 from Sonicadvance1/fix_635
...
Track unittest dependencies through to the custom target
2024-02-26 21:56:45 -08:00
Ryan Houdek
aa9d7c5629
Merge pull request #3460 from Sonicadvance1/add_unittest_for_3421_bug
...
Adds a unittest for a bug from #3421
2024-02-26 21:56:17 -08:00
Alyssa Rosenzweig
b6bd826014
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-26 16:48:15 -04:00
Ryan Houdek
4f028b8614
Capture a 64-bit process trying to jump to 32-bit syscall handler
...
Fixes #591
Adds a simple unittest
2024-02-26 05:37:29 -08:00
Ryan Houdek
c00c9b397e
Adds a unittest for a bug from #3421
...
When the source arguments for LoadMem/StoreMem have bit 31 set then they
are incorrectly sign extending in some instances.
Detected this when testing #3421 but I don't have a proper fix for it.
2024-02-26 00:07:19 -08:00
Ryan Houdek
6b5d8bd8c0
Track unittest dependencies through to the custom target
...
Fixes #635
2024-02-25 19:27:52 -08:00
Alyssa Rosenzweig
2cfd71c159
InstCountCI: add dead ADC test
...
nothing else covers this case
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-25 10:50:25 -04:00
Alyssa Rosenzweig
0f26780de0
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-25 10:50:25 -04:00
Alyssa Rosenzweig
0ef72bf118
Merge pull request #3451 from Sonicadvance1/fix_zero_reg_regression
...
Fixes zero register flag generation
2024-02-24 21:08:49 -04:00
Ryan Houdek
947ae1c243
Adds MGRR hottest block on render thread
...
Was about 7% CPU time in this looping block. Has some fairly obvious
performance improvements that can be done.
2024-02-24 16:49:46 -08:00
Ryan Houdek
d703f3ccee
Fixes zero register flag generation
...
Fixes 140976d322dc5e26c129d1e6448f25f6b2378341
Adds a unit test to ensure it keeps working.
2024-02-24 16:32:25 -08:00
Alyssa Rosenzweig
045549f166
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-24 15:55:07 -04:00
Ryan Houdek
c3c635e36e
InstcountCI: Adds a vector addition loop from bytemark
...
This was interesting because it caught that we are failing loadstores
with reg+reg address generation on vectors.
2024-02-24 03:44:02 -08:00
Ryan Houdek
cf067994f3
Merge pull request #3440 from Sonicadvance1/addressing_limits
...
InstcountCI: Adds addressing limitations to instcountci
2024-02-24 01:09:22 -08:00
Ryan Houdek
3a0f9db512
Fix instcountci
2024-02-22 12:44:10 -08:00
Alyssa Rosenzweig
5378ae2e76
Merge pull request #3436 from alyssarosenzweig/ir/af-simplify
...
Simplify CalculateAF
2024-02-22 08:17:07 -04:00
Ryan Houdek
cc9c80d79f
Merge pull request #3445 from alyssarosenzweig/instc/fmod
...
InstCountCI: add FMOD block
2024-02-21 19:27:07 -08:00
Ryan Houdek
60e8da05cd
Merge pull request #3442 from alyssarosenzweig/instc/witcher3
...
InstCountCI: add The Witcher 3 block
2024-02-21 18:56:39 -08:00
Alyssa Rosenzweig
aac7fa9b58
InstCountCI: add hot scalar FMOD block
...
both AFP and non-AFP versions, since this is greatly affected by AFP opts.
pulled from #2563
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-21 22:36:15 -04:00
Alyssa Rosenzweig
a6211f29e7
InstCountCI: add The Witcher 3 block
...
Closes : #2688
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-21 21:44:12 -04:00
Ryan Houdek
da263834f8
InstcountCI: Adds addressing limitations to instcountci
...
Spurred on by #3421
This does a bunch of GPR and vector loads to showcase addressing
limitations between ARM and x86.
Tests:
- 8/16/32/64-bit GPR loads
- Both 32-bit and 64-bit addressing modes
- 32/64/128-bit Vector loads
- Both 32-bit and 64-bit addressing modes
- Duplicate the tests for 32-bit addressing mode with a 32-bit process
- Since it should change behaviour.
Untested:
- 8/16-bit vector loadstores since those don't exist on x86
- 16-bit x87 integer load exists but that doesn't go through a vector
load in FEX.
2024-02-21 16:50:00 -08:00
Ryan Houdek
66feea9e8e
Merge pull request #3422 from neobrain/feature_libfwd_wayland32
...
Library Forwarding: Add support for 32-bit Wayland
2024-02-21 13:41:38 -08:00
Alyssa Rosenzweig
30ff225e80
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-21 12:49:14 -04:00
Tony Wasserka
80fcd640be
unittests/Library Forwarding: Test interaction between ptr_passthrough and fixed-size integer mapping
2024-02-21 11:44:54 +01:00
Ryan Houdek
8e0543d9af
InstcountCI
2024-02-20 12:05:44 -08:00
Alyssa Rosenzweig
fba5678476
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-12 12:36:48 -04:00
Ryan Houdek
df3d6938ae
Merge pull request #3410 from alyssarosenzweig/opt/nzcv-pass-2
...
Add NZCV+PF/AF optimization pass
2024-02-10 05:03:12 -08:00
Alyssa Rosenzweig
de0b690672
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-08 14:11:56 -04:00
Alyssa Rosenzweig
300e2729a7
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-08 14:10:30 -04:00
Alyssa Rosenzweig
69466dce92
InstCountCI: add flag optimizations tests
...
Now that lots of instructions have optimal flag calculation in isolation, we
need to look at sequences of instructions together. These cases test various
interesting cases where concatenating the optimal instruction translations gives
something terrible for the whole block. These cases exercise the
new flag optimization pass.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-06 14:22:28 -04:00
Alyssa Rosenzweig
2dfb7727d5
InstCountCI: add test-with-self cases
...
these are useful x86 instructions for e.g. branch-if-not-zero, and have
opportunities for clever translations. Add the instcountci cases to make sure we
do something reasonable for them.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-05 15:41:29 -04:00
Alyssa Rosenzweig
560565aa13
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-05 15:34:11 -04:00
Alyssa Rosenzweig
afae24d870
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-02-02 13:03:55 -04:00
Mai
6993f4fd8d
Merge pull request #3400 from Sonicadvance1/revert_runtime_longmode_switch
...
Revert #3303
2024-02-02 11:53:44 -05:00
Mai
920a8db369
Merge pull request #3397 from pmatos/XCHGOp
...
Improve XCHG operations
2024-02-02 11:53:22 -05:00
Ryan Houdek
9c37c0f1c3
Merge pull request #3392 from neobrain/feature_libfwd_fixed_size_ints
...
Library Forwarding: Handle cross-architecture differences of integer types
2024-02-02 08:42:41 -08:00
Paulo Matos
4623544f69
Improve XCHG operations
...
Marking loads as allowing upper garbage simplifies some operations.
Update InstCountCI as well.
2024-02-02 08:16:13 +00:00
Ryan Houdek
45587278c9
InstCountCI: Update for segment changes
2024-02-01 18:17:28 -08:00
Tony Wasserka
ac77376441
FEXLinuxTests: Suppress "attribute ignored" warnings for nocf_check
2024-02-01 14:43:50 +01:00
Tony Wasserka
f246e9864c
FEXLinuxTests: Simplify a few extern "C" declarations
2024-02-01 14:43:50 +01:00
Tony Wasserka
78cb2cd9fc
FEXLinuxTests: Fix warnings about unused results
2024-02-01 14:43:50 +01:00
Ryan Houdek
cec1814a09
Merge pull request #3384 from pmatos/CDQOp-Opt
...
Optimize CDQOp
2024-01-31 17:51:23 -08:00