Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JitArm64: no intermediate rounding for FMA #8870

Merged
merged 2 commits into from Jul 1, 2020
Merged

Conversation

Tilka
Copy link
Member

@Tilka Tilka commented Jun 14, 2020

Completely untested atm.

Copy link
Contributor

@merryhime merryhime left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Untested.
Logic however looks solid to me.

@iwubcode

This comment has been minimized.

@JosJuice
Copy link
Member

EDIT: I am assuming "JitArm64" is the Jit recompiler CPU option.

It is the JIT recompiler for ARM CPUs, which shows up as "JIT ARM64 Recompiler" on Android and "JIT Arm64 (experimental)" in DolphinQt.

Copy link
Member

@degasus degasus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

untested, but the code looks very good.

@JosJuice
Copy link
Member

JosJuice commented Jul 1, 2020

Tested two games on my phone, with no problems observed.

This is probably just me not being used to ARM assembly (so I don't mind if someone merges without me getting an answer), but why do we need a special case for d == a || d == c?

@degasus
Copy link
Member

degasus commented Jul 1, 2020

@JosJuice Thanks for testing. PPC has the 4 operant isntruction (d = a*c + b), aarch64 only the 3 operant instruction (d += a*c). So we need one copy d=b, and another one if d overlaps a or c. Else a or c will get overwritten before the MAD.

@degasus degasus merged commit 2147707 into dolphin-emu:master Jul 1, 2020
@Tilka Tilka deleted the arm_fma branch July 1, 2020 16:19
@MANGOM1LK
Copy link

This PR is breaking stuff in Sonic Unleashed: https://youtu.be/CWRrhoeGArE

Notably, stick inputs are now incorrect. This should probably be reverted for the time being until more testing can happen :/

@merryhime
Copy link
Contributor

merryhime commented Jul 1, 2020

@MANGOM1LK Spotted an obvious bug. Please try the following build: https://dolphin.ci/#/builders/15/builds/1251

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
6 participants