5 ms·
I mean, that page only describes ABI differences. I was thinking I would find ARM architecture differences in the silicon. I understand that the ABI is consider
by sounds 4y ago
I mean, that page only describes ABI differences. I was thinking I would find ARM architecture differences in the silicon. I understand that the ABI is considered part of the specification for 64-bit ARM silicon.
- masklinn 4y ago> I mean, that page only describes ABI differences. It explains how Apple constrains users, and thus the difference between general ARM and Apple Silicon. Which was the question. > I was thinking I would find ARM architecture differences in the silicon. Could you explain what you mean exactly? It's an ARM implementation so it has to implement the ISA. Apple's implementation has a few interesting bits, like a TSO mode (for x86 emulation), and actually has custom ISA extensions (AMX, memory compression, APRR/GXF) which nobody else would be allowed according to Hector Martin.
- throwme_123 4y ago> nobody else would be allowed according to Hector Martin I'm not sure of the meaning here. Is it: a. ISA extensions can't be called by any program not written by Apple? (including Asahi) b. Nobody else but Apple has the right to have these ISA extensions, but when in Silicon, programmers can use them?
- kzrdude 4y agoIt might be something like this? c. Nobody else who licenses ARM would be allowed to add extensions to their implementation of the ISA in this way. Apple is more or less a founding member of ARM and has some other deal.
- masklinn 4y agoYes, though that's a different formulation of (2) really: > Nobody else but Apple has the right to have these ISA extensions Programmers "can" use Apple extensions because... they're extensions to the ISA, they're not documented but they can't really be blocked off unless they're ring0, and that would make them a lot less useful (the entire point of having extensions for matrix computation is to speed up matrix computations, which are not usually kernel work, and having to syscall to do them would waste the entire thing).
- saagarjha 4y agoApple exposes these behind APIs that hide these implementation details. Their own compilers never emit them. Nothing can stop you from embedding them into your binary yourself, of course, but this would be annoying to both you and Apple.
- sounds 4y agoI replied to this post: "Apple diverges from standard 64-bit ARM architecture in specific ways" I know about Apple Silicon's total store ordering mode and other matrix extensions. When the poster wrote "Apple diverges from standard 64-bit ARM architecture in specific ways" I expected the link to have more information on the Apple Silicon, but found it was just ABI information. See for yourself - https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms https://developer.apple.com/documentation/xcode/writing-arm6...
- masklinn 4y ago> I know about Apple Silicon's total store ordering mode and other matrix extensions. OK? > When the poster wrote "Apple diverges from standard 64-bit ARM architecture in specific ways" I expected the link to have more information on the Apple Silicon, but found it was just ABI information. Yees? That's really no clearer. The poster wrote that Apple diverges from "standard 64-bit ARM in specific ways", and extensions aside the ABI restrictions is those specific ways: they mean that you can't take random ARM64 assembly or machine code and run it on Apple Silicon without validation that the additional restrictions are respected. Again, what did you mean exactly? Did you expect Apple Silicon to not implement ARM despite being an implementation of the ARM ISA?
- kevin_thibedeau 4y agoThey have features to simplify x86 emulation like additional ALU flags.
- sounds 4y agoI replied to this post: "Apple diverges from standard 64-bit ARM architecture in specific ways" I know about Apple Silicon's total store ordering mode and other matrix extensions. When the poster wrote "Apple diverges from standard 64-bit ARM architecture in specific ways" I expected the link to have more information on the Apple Silicon, but found it was just ABI information. See for yourself - https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms https://developer.apple.com/documentation/xcode/writing-arm6...