messy by how similar to x86 it becamse (and x86 over time also completletly change once it started to translated evreything in uCode), a bit like how messy avx512 went and was removed with Intel... same on arm with their equivalent stuff.ARM and X86 are nearly identical but ARM is a complete mess.
x86 become over time pseudo RISC with the pentium, they do not execute variable lenght instruction on the hardware, they decode everything into ARM Like single uop and ARM has so many extension that it is not some limited set of simple core one.
ARM still easier to decode on the chip too.
By the end of the video, he ended up with about twice the efficacy of a steam deck and achieved to be gpu limited a lot of the time and took him only a few months too close the gap with x86 having many years dedicated to it.
I doubt that very much, Apple is incredibly involved with LLVM (LLVM creator went to apple and they did finance a lot of the work) and they are really good with arm cpu, same with Google.Also LLVM for ARM is really bad. So bad that he had to do it in assembly to fix some bugs.
Having some issues come up when you do something like this:
The SPU recompiler is typically the heaviest part of emulating the PlayStation 3 on x86 machines. Despite the x86 back and having been relentlessly optimized, I dove straight into the assembly that LLVM produced. And this is what I saw.
Just as a recap, RPCS3 uses the LVM project to translate PlayStation 3 game code to x86 or ARM. We take PlayStation 3 assembly, translate that to LLVM, then LVM takes that and outputs native code for your machine. It's not dissimilar to how games like Unleash Reompiled work, only they're translating to C rather than LLVM IR. Unleash Recompiled even requires use of the LLVMbased Clang compiler to recompile the C code it produces.
That quite unusual and a high bar to use, I am sure there was a long list of issue and manual work involved and years going with the x86 version.
Sometime it did better for ARM, sometime it did better for x86, if you compare GCC with LLVM/clang result on arm you will not see some massive gap between the 2. Or more bugs/performance if you target x86 vs arm with LLVM/clang, specially not for Apple ARM cpus, the qualcomm used here with 4 different cores type was a bit of an hard case.
Last edited: