-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
LLVM on Aarch64 Tracker #15567
Comments
I had an epiphany about the LLVM incompatibilities. I'm fighting the ABI so hard trying to make everything stack-based on an architecture that is all about registers. There is 0 reason for me to do that. The stack doesn't need any unwinding or preserving at all. |
Commercial games now work with PPU LLVM though there is some severe memory corruption coming from the LLVM-generated subroutines. The odd GHC behavior continues and I can see functions writing to stack-based addresses without first allocating memory. A workaround is to just allow a working area on the stack on the gateway. The execution context is no longer saved on the stack to avoid random corruption as well. |
Turns out this was a disaster of my own making. I had some llvm modifications breaking my generated code and causing stack smashing. Reverting that crap gets us back in business. |
Got mandelbrot SPU demo to run with some heavy hacks littered around the codebase. I think that's enough experiments, I'll start slowly putting everything together and hopefully we get a PR before end of the month. |
LLVM doesn't work properly on aarch64. There are architectural reasons for this, particularly when used within RPCS3. There is some internal progress for all of these, so we're tracking things here to collaborate more efficiently.
Pre
Main
PPU LLVM
Obsolete implementation
SPU LLVM
The text was updated successfully, but these errors were encountered: