Из https://github.com/riscv/riscv-llvm,
Использование llvm-riscv довольно просто для создания полного исполняемого файла, однако вам потребуется riscv64-unknown-*-gcc для сборки и компоновки. Пример компиляции hello world:
$ clang -target riscv64 -mriscv=RV64IAMFD -S hello.c -o hello.S
$ riscv64-unknown-elf-gcc -o hello.riscv hello.S
Мой вопрос: если я изменю бэкэнд LLVM и заставлю его выдать новую инструкцию в файле hello.S, как riscv64-unknown-elf-gcc
узнает, как преобразовать ее в объектный код? Нужно ли также внести изменения в riscv64-unknown-elf-gcc
, чтобы он знал формат новой инструкции?