Ryan Houdek
37e13cf073
FileManagement: Fix fstatat with self and NOFOLLOW
...
When asked to not follow the symlink, FEX needs to return data about the
symlink itself rather than following to the target executable. In that
case we need to return symlink information otherwise games that sanity
check can break.
This is what happened with Darwinia in #3662 .
We return the FEXInterpreter symlink information in this case since it
doesn't return any information that is relevent to leaking emulator
state. Once the application asks to follow through to the symlink target
is when we will replace.
Also adds a unit test to ensure we don't break it.
2024-05-29 18:41:24 -07:00
Ryan Houdek
f7f3024b92
unittests/ASM: Adds SIB transpose scale register test
...
With a bit of pointer math it will choose the incorrect address if the
base and offset registers were transposed.
2024-05-29 11:41:20 -07:00
Alyssa Rosenzweig
11ec71a4ce
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-29 12:32:07 -04:00
Ryan Houdek
f3d8c2cbac
unittests/ASM: Adds unittest for bug encountered in Darwinia
2024-05-29 07:29:49 -07:00
Ryan Houdek
1226069b4c
InstCountCI: Update for fixes
...
Only prefetch hit currently since ConstProp is limited to optimizing the
ADD IROp atm.
2024-05-29 04:42:40 -07:00
Ryan Houdek
95919a1ddf
InstcountCI: Add addressing limit tests for base + offset<<shift
...
These need to be tested.
2024-05-29 04:28:24 -07:00
Alyssa Rosenzweig
32e8a56093
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-28 09:32:14 -04:00
Ryan Houdek
d6b9252760
InstCountCI: Adds SSE4.2 operations
...
Doesn't handle all 127 combinations of the control immediate for all
four instructions. Although supplies the instruction control instruction
that A Hat in Time abuses heavily.
The SSE2 implementation of the function in vcruntime140 is likely faster
than our currently implementation but we should be able to get something
comparable. Not bad considering this is a required extension and this is
the first game we found that abuses the instruction heavily.
2024-05-28 00:55:32 -07:00
Alyssa Rosenzweig
d3eed27d17
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-24 15:45:32 -04:00
Alyssa Rosenzweig
a8d32b9a2f
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-24 09:26:02 -04:00
Alyssa Rosenzweig
559772bb03
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-23 08:27:13 -04:00
Mai
5497240a25
Merge pull request #3655 from alyssarosenzweig/opt/wacky-imul
...
Optimize large sign-extended constants
2024-05-22 23:27:09 -04:00
Alyssa Rosenzweig
79c609d0f5
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-22 22:53:19 -04:00
Alyssa Rosenzweig
8340012466
InstCountCI: add wacky imul
...
found in bytemark, exposes an interesting constant case
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-22 22:50:19 -04:00
Alyssa Rosenzweig
9d0718fbc4
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-22 21:00:25 -04:00
Alyssa Rosenzweig
9f243c8f7b
InstructionCountCI: add bytemark hot block
...
this was basically practice for using perf with FEX, but a few things do stand
out in the assembly as suboptimal.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-22 14:09:50 -04:00
Alyssa Rosenzweig
dfb751eea0
unittests: add XeSS test
...
Useful smoke test for the asymptoptic behaviour of our constant pooling code.
Not useful for correctness testing, so skip in CI.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-21 19:41:47 -04:00
Ryan Houdek
ca70e387ec
Merge pull request #3648 from alyssarosenzweig/ra/pair-extract
...
Slightly improve pair coalescing + memcpy fix from RA branch
2024-05-21 16:19:35 -07:00
Ryan Houdek
7b4e48480b
Merge pull request #3646 from alyssarosenzweig/opt/minor-disp
...
OpcodeDispatcher: eliminate some Bfe's
2024-05-21 15:57:52 -07:00
Alyssa Rosenzweig
101bba4808
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-21 17:14:57 -04:00
Alyssa Rosenzweig
c01c415030
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-21 16:40:59 -04:00
Alyssa Rosenzweig
ebfcc1e835
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-20 10:33:15 -04:00
Ryan Houdek
e3e7f0279c
Merge pull request #3644 from alyssarosenzweig/clang-format/left
...
clang-format: left-align escaped newlines
2024-05-20 07:12:50 -07:00
Alyssa Rosenzweig
a10f984b1c
clang-format: left-align escaped newlines
...
alternative to #3638 . this is theoretically better for side-by-side diffs. in
practice it may make other diffs worse since all the \'s change when part of the
macro change.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-20 09:47:21 -04:00
Ryan Houdek
b1f7be2f6c
InstCountCI: Update
2024-05-18 18:08:38 -07:00
Ryan Houdek
926eefc86c
Merge pull request #3635 from alyssarosenzweig/opt/flag-store
...
OpcodeDispatcher: reorder some moves
2024-05-16 10:58:40 -07:00
Alyssa Rosenzweig
83c536c47f
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-16 08:32:11 -04:00
Ryan Houdek
efe7c54374
Merge pull request #3625 from Sonicadvance1/restricted_inst
...
FEXCore: Fixes the difference between CPL-0 and undefined instructions
2024-05-14 07:11:19 -07:00
Ryan Houdek
512312fa06
FEXLinuxTests: Implements a test for the new instructions
2024-05-13 11:12:26 -07:00
Ryan Houdek
3da31830d1
InstcountCI: Update
2024-05-10 15:34:13 -07:00
Ryan Houdek
2cae2f2462
Merge pull request #3617 from bylaws/arm64ec-dispatcher
...
FEXCore: ARM64EC x64 entry/exit support
2024-05-08 12:25:26 -07:00
Alyssa Rosenzweig
e13c8e3295
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-08 14:01:42 -04:00
Billy Laws
61cd835754
Update InstCountCI
2024-05-06 17:37:43 +00:00
Tony Wasserka
86315027c3
Library Forwarding: Support Vulkan forwarding with guest-libX11
2024-05-02 18:06:54 +02:00
Alyssa Rosenzweig
bfb06b2d55
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-29 20:00:36 -04:00
Ryan Houdek
640e911af4
Adds unit tests for ADC/SBB garbage upper data bug
...
Reproduces broken rendering in Final Fantasy 7 (SteamID 39140)
2024-04-29 20:00:36 -04:00
Ryan Houdek
c8704a7f71
OpcodeDispatcher: Implement support for SMSW
...
Found out that Far Cry uses this instruction and it is viable to use in
CPL-3. This only returns constant data but its behaviour is a little
quirky.
This instruction has a weird behaviour that the 32-bit operation does an
insert in to the 64-bit destination, which might be an Intel versus AMD
behaviour. I don't have an Intel machine available to test if that
theory is true although. This assumption would match similar behaviour
where segment registers are inserted instead of zext.
Gets the game farther but then it crashes in a `___ascii_strnicmp`
function where the arguments end up being `___ascii_strnicmp(nullptr, "Color", 5);`.
2024-04-18 07:41:39 -07:00
Alyssa Rosenzweig
625d8ac177
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-17 14:54:19 -04:00
Paulo Matos
905aa935f5
Reformat until fixed-point
...
Followup to 2b4ec88daebd35fefb5bf5c73d7fc2b4155771ed.
Some files needed a couple of calls to clang-format 16.0.6 to
reach a fixed point.
2024-04-15 09:40:00 +02:00
Paulo Matos
2b4ec88dae
Whole-tree reformat
...
This follows discussions from #3413 .
Followup commits add clang-format file, script and blame ignore lists.
2024-04-12 16:26:02 +02:00
Lioncache
4cb2432b5c
OpcodeDispatcher: Make use of new x87 constants
...
Now we can load these directly instead of needing to manually materialize them.
2024-04-09 10:17:15 -04:00
Lioncache
65b5281d7c
IR: Add constants for FLD variants
2024-04-09 10:13:33 -04:00
Ryan Houdek
1a8b61b9fc
Merge pull request #3560 from bylaws/ec-pt6
...
FEXCore: Support x64 -> arm64ec calls
2024-04-09 07:08:38 -07:00
Alyssa Rosenzweig
d0ff3e64d9
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-08 13:49:31 -04:00
Billy Laws
e03434ebde
Update InstCountCI
2024-04-08 16:04:59 +01:00
Alyssa Rosenzweig
b54d4931fb
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-05 20:34:05 -04:00
Alyssa Rosenzweig
90d5bd3aec
unittests: add test for shift PF bug
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-05 20:34:05 -04:00
Alyssa Rosenzweig
59c3f96a23
unittests: add test for deferred flags + shift with cl=0
...
this failed on an earlier version of the series that otherwise passed ci.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-05 20:34:05 -04:00
Alyssa Rosenzweig
a787daae41
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-04 07:42:27 -04:00
Alyssa Rosenzweig
d6425d05f3
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-04-02 13:57:06 -04:00