-
Notifications
You must be signed in to change notification settings - Fork 5
OpeLa Compiler MultiArch
Kota UCHIDA edited this page Dec 30, 2020
·
12 revisions
OpeLa コンパイラ(opelac)は当初 x86-64 専用のコンパイラとして開発されましたが、2020/12/25 現在は AArch64 にも対応しています。 このページは OpeLa コンパイラのマルチアーキテクチャ対応状況を説明します。
opelac は -target-arch <arch>
オプションで出力アーキテクチャを変更できます。
現在対応しているのは x86_64
(デフォルト)と aarch64
です。
AArch64 は Arm プロセッサの動作モードの名前です。64 ビットレジスタが使えるモードです。
opelac が対応しているのは M1 Mac です。 AArch64 が使えるコンピュータは他にも Raspberry Pi 等がありますが、opelac が出力するアセンブラは今のところ Mach-O 形式専用なので、M1 Mac でしか動作しません。
複数のアーキテクチャに対応する際、考慮すべきポイントは次の通りです。
- 命令セット:x86-64 で実行できる命令セットか、AArch64 で実行できる命令セットか
- 実行可能ファイル形式:ELF か Mach-O か
- OS システムコール:どのように OS のシステムコールを呼ぶか
-
Introduction - OS X Assembler Reference: Mac OS X のアセンブラリファレンス。Mach-O バイナリを作るときの参考になる。
-
Assembler Directives: Mach-O のセクションの説明。
__TEXT,__text,regular,pure_instructions
の意味などが載っている。
-
Assembler Directives: Mach-O のセクションの説明。