exeClang for SOLID s009(AArch64)ライブラリ仕様¶
AARCH64 固有の設定¶
ライブラリは以下の設定でビルドされています。
メモリモデルは large です。(
-mcmodel=large)SOLID DLL 用ライブラリは位置独立コードなので small モデルになります。
ARM/RISC-V と異なり、アンアラインドメモリアクセスが有効なコードを生成します。(デフォルト。オプション無指定。)
これは標準 C ライブラリの文字列関数に ARM 社の optimized-routines を使用しており、このライブラリがアンアラインドメモリアクセスと dc zva 命令を要求するからです。
MMU が有効になる前のコードで、コンパイラが memcpy, memmove, memset, memcmp を生成しないように注意してください。(この 4 関数は常に要求され、抑制オプションはありません。)
特に memset 関数は dc zva 命令を使用するので、データキャッシュ無効領域や MMU OFF の状態では使用できません。
その他のライブラリ仕様は exeClang for SOLID s008(RISC-V RV32/RV64 共通)ライブラリ仕様 と同じです。