Skip to content

OpeLa Compiler MultiArch

Kota UCHIDA edited this page Dec 30, 2020 · 12 revisions

OpeLa トップページ

OpeLa コンパイラ(opelac)は当初 x86-64 専用のコンパイラとして開発されましたが、2020/12/25 現在は AArch64 にも対応しています。 このページは OpeLa コンパイラのマルチアーキテクチャ対応状況を説明します。

コンパイラオプション

opelac は -target-arch <arch> オプションで出力アーキテクチャを変更できます。 現在対応しているのは x86_64(デフォルト)と aarch64 です。

AArch64 対応について

AArch64 は Arm プロセッサの動作モードの名前です。64 ビットレジスタが使えるモードです。

opelac が対応しているのは M1 Mac です。 AArch64 が使えるコンピュータは他にも Raspberry Pi 等がありますが、opelac が出力するアセンブラは今のところ Mach-O 形式専用なので、M1 Mac でしか動作しません。

マルチアーキテクチャ対応に関する雑記

複数のアーキテクチャに対応する際、考慮すべきポイントは次の通りです。

  • 命令セット:x86-64 で実行できる命令セットか、AArch64 で実行できる命令セットか
  • 実行可能ファイル形式:ELF か Mach-O か
  • OS システムコール:どのように OS のシステムコールを呼ぶか

Mach-O の資料

Clone this wiki locally