KDOC 520: Goコンパイラは定数除算を乗算に変換する

この文書のステータス

  • 作成
    • <署名>
  • レビュー
    • <署名>

概要

変数で除算する場合と、定数で除算する場合のアセンブリを比較する。

  • 変数で除算するコードでは除算命令 IDIVQ を使っている
  • 定数で除算するコードでは除算命令は登場せず乗算命令 IMULQ を使っている

また、変数で除算する場合はゼロ除算時のチェック CALL runtime.panicdivide(SB) が入っていたりする。

関連