GCCでRISCVの命令セットの指定してコンパイルする方法について
GCCでRISCVの命令セットの指定してコンパイルする方法を調べたので以下に記載する。 -mabiは付けないとなぜかコンパイル失敗してしまう。 ABIはApplication Binary Interfaceの略でバイナリ版のAPIらしいがこの辺りもそのうち調べていきたい。
参考: All Aboard, Part 1: The -march, -mabi, and -mtune arguments to RISC-V Compilers - SiFive
bit幅の指定(32bit or 64bit)
64bit: ARCH=-march=rv64i -mabi=lp64
32bit: ARCH=-march=rv32i -mabi=ilp32命令セット指定
defaultでは整数命令のみで、
上の-marchのiの後に以下をつけると各命令セットを追加できる 。
m: Integer Multiplication and Division
a: Atomic Instructions
f: Single-Precision Floating-Point
d: Double-Precision Floating-Point
c: Compressed Instructions