What's the cause of the increase in unportable assembly code which targets the 64-bit ARM ISA in Apple’s ARM-based computers?

Writing portable ARM64 assembly
Apr 13, 2023
An unfortunate side effect of the rising popularity of Apple’s ARM-based computers is an increase in unportable assembly code which targets the 64-bit ARM ISA. This is because developers are writing these bits of assembly code to speed up their programs when run on Apple’s ARM-based computers, without considering the other 64-bit ARM devices out there, such as SBCs and servers running Linux or BSD.

The good news is that it is very easy to write assembly which targets Apple’s computers as well as the other 64-bit ARM devices running operating systems other than Darwin. It just requires being aware of a few differences between the Mach-O and ELF ABIs, as well as knowing what Apple-specific syntax extensions to avoid. By following the guidance in this blog, you will be able to write assembly code which is portable between Apple’s toolchain, the official ARM assembly toolchain, and the GNU toolchain.
system
Qual é a causa do aumento do código de montagem não portável, que tem como alvo o braço ISA de 64 bits nos computadores baseados em braço da Apple?

Escrevendo a montagem portátil do ARM64
13 de abril de 2023
Um efeito colateral infeliz da crescente popularidade dos computadores baseados em braço da Apple é um aumento no código de montagem não portável, que tem como alvo o braço ISA de 64 bits.Isso ocorre porque os desenvolvedores estão escrevendo esses bits de código de montagem para acelerar seus programas quando executados nos computadores baseados em ARM da Apple, sem considerar os outros dispositivos ARM de 64 bits por aí, como SBCs e servidores executando Linux ou BSD.

A boa notícia é que é muito fácil escrever uma montagem que visa os computadores da Apple, bem como os outros dispositivos de braço de 64 bits que executam sistemas operacionais que não sejam Darwin.Requer apenas estar ciente de algumas diferenças entre o Mach-O e o ELF Abis, além de saber quais extensões de sintaxe específicas da Apple a serem evitadas.Seguindo as orientações neste blog, você poderá escrever o código de montagem, que é portátil entre a Chain Toolchain da Apple, a cadeia de ferramentas oficial do ARM e a Chain de ferramentas da GNU.
user
O motivo do aumento do código de montagem não portável, que tem como alvo o braço ISA de 64 bits nos computadores baseados em braço da Apple, é a falta de consideração de outros dispositivos de braço de 64 bits pelos desenvolvedores.
assistant
<|system|>
</s>
<|user|>
Qual é a causa do aumento do código de montagem não portável, que tem como alvo o braço ISA de 64 bits nos computadores baseados em braço da Apple?

Escrevendo a montagem portátil do ARM64
13 de abril de 2023
Um efeito colateral infeliz da crescente popularidade dos computadores baseados em braço da Apple é um aumento no código de montagem não portável, que tem como alvo o braço ISA de 64 bits.Isso ocorre porque os desenvolvedores estão escrevendo esses bits de código de montagem para acelerar seus programas quando executados nos computadores baseados em ARM da Apple, sem considerar os outros dispositivos ARM de 64 bits por aí, como SBCs e servidores executando Linux ou BSD.

A boa notícia é que é muito fácil escrever uma montagem que visa os computadores da Apple, bem como os outros dispositivos de braço de 64 bits que executam sistemas operacionais que não sejam Darwin.Requer apenas estar ciente de algumas diferenças entre o Mach-O e o ELF Abis, além de saber quais extensões de sintaxe específicas da Apple a serem evitadas.Seguindo as orientações neste blog, você poderá escrever o código de montagem, que é portátil entre a Chain Toolchain da Apple, a cadeia de ferramentas oficial do ARM e a Chain de ferramentas da GNU.</s>
<|assistant|>
O motivo do aumento do código de montagem não portável, que tem como alvo o braço ISA de 64 bits nos computadores baseados em braço da Apple, é a falta de consideração de outros dispositivos de braço de 64 bits pelos desenvolvedores.</s>
