arm64のメモ
Cコンパイラを実装するためにarm64のことを調べている。この記事はそのメモ。
よくあるソフトウェアのライブラリについているドキュメントとは毛色が違う。
- Armv8-A Instruction Set Architectureが優しい
- PDF版もある。空白多めのシングルカラム39ページなのでサクッと読める。最初に読んでおくと幸せになれたかも。
- Procedure Call Standard for the Arm® 64-bit Architecture (AArch64) (pdf)がCコンパイラを実装するときに気になる細かいことをコンパクトにまとめてそうな印象。
- 上のドキュメントを含む公式のリンク集がある
Arm macを使っている人の話です。
- 既存コンパイラがはくアセンブリを覗く方法
- アセンブリをはく:
gcc -O0 -S
- ディスアセンブル:
otool -vVt
- アセンブリをはく:
- デバッガで調査する
- lldbが使える
- エラー箇所の特定に便利
- ドキュメント
- 入門記事(東大の講義ページ) 何もわからんくなったら{ここに立ち返る|ここから始める}のが良さそう
- 公式チュートリアル: ちょっと読んだ。真面目に勉強するなら導入に良さそう
アセンブリ命令って割と体系的になってなくてやばいイメージがあったけど、 arm64は秩序がある程度あるように感じている。まだ深淵を覗けていないだけかもしれないが。汎用レジスタの名前が簡単なことが大きいかもしれない。