3 ms·
Which compiler would be required for this (https://github.com/corsix/amx/blob/main/aarch64.h https://github.com/corsix/amx/blob/main/aarch64.h)? I understand t
by ladyanita22 4y ago
Which compiler would be required for this (https://github.com/corsix/amx/blob/main/aarch64.h https://github.com/corsix/amx/blob/main/aarch64.h)?
I understand the limitation is not at the OS side, as nothing can be done there, but at the compiler-side (I mean that the Apple-supplied compiler doesn't compile against the AMX instruction set, so you'd need a compatible one that, I understand, doesn't exist).
Or is it just undocumented and you can actually get it to work with a Standard xcode and macOS installation given the headers provided?
- dougall 4y agoThis header works with standard Xcode/macOS, by taking advantage of inline assembly in a slightly-cursed way (turning register names into numbers and encoding the instruction itself).
- corsix 4y agoSlightly cursed is how I roll. I would like to know where the trick first originated from though (I found it at https://github.com/yvt/amx-rs/blob/main/src/nativeops.rs#L22 https://github.com/yvt/amx-rs/blob/main/src/nativeops.rs#L22 rather than inventing it de novo)
- ndesaulniers 4y agoThis happens often in the Linux kernel to continue to support older assemblers for newer instruction set extensions. The x86 retbleed mitigation uses .inst to trick the hardware instruction decoder...different instructions are encoded/run than what is speculatively decoded.
- dagmx 4y agoCompilers wouldn’t target it. You’d get to it via https://developer.apple.com/documentation/accelerate https://developer.apple.com/documentation/accelerate