2017-02-24 6 views
0

gccを使用してaarch64用に自分のコードをコンパイルしようとしています。ただし、出力バイナリはNEONレジスタ(q0〜q7)を使用します。どのように私はそれらを使用しないようにコンパイラに指示できますか?aarch64:gccでコンパイルするときにNEONレジスタ

+1

aarch64を生成している場合、Qレジスタはありません。 armv8のNEONベクタ・レジスタの名前はv0〜v31です。 – BitBank

+1

@BitBankが、それは、彼らはまた、b *の、時間*命名している、完全に正確ではありません*、D *またはQ *コンテキストに応じてね、例えば、LDRのQ0 'で、[X0]'や 'sqdmlslのS0で、 h1、v2.h [0] ' –

+0

@JamesGreenhalghが正しいです。 – amrzar

答えて

1

-mgeneral-regs-onlyを使用すると、汎用レジスタのみを使用するようにコンパイラに指示できます(GCC Documentationを参照)。

しかし、AArch64のための唯一のABIは、浮動小数点およびアドバンストSIMDのサポートがあることを前提としないことに注意してください。コードで浮動小数点を使用すると、エラーとしてフラグが立てられます。あなたがLinux環境にいる場合は、アドバンストSIMDと浮動小数点のサポートを想定したバイナリにリンクします。

+0

おかげさまで@james、私はそれをカーネルで使いたいと思っていました。 – amrzar

関連する問題