/arch
(ARM64)
ARM64 でコードを生成するための Arm A プロファイル アーキテクチャ拡張機能を指定します。 その他のターゲット アーキテクチャの詳細/arch
については、(x86)、(x64)、/arch
および/arch
(ARM) を参照してください。/arch
構文
/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>
[+feature]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>
[+feature]
引数
/arch:armv8.x
Armv8-A アーキテクチャを指定します。ここでx
、必要な拡張値0
は 1 です9
。 既定では、アーキテクチャが指定されていない場合、コンパイラは動作を /arch:armv8.0
使用します。
/arch:armv9.x
2
Armv9-A アーキテクチャを指定します。ここで x
、必要な拡張値を指定 0
します 4
。 既定では、アーキテクチャが指定されていない場合、コンパイラは動作を /arch:armv8.0
使用します。
解説
ARM64 拡張機能は、Armv8.0-A から Armv8.9-A まで、Armv9.0-A から Armv9.4-A まで指定できます。 必要に応じて、オプション3 に特徴引数を追加して、1 つ以上のアーキテクチャ機能を有効にします。 たとえば、Armv8.0-A をターゲットにして機能を有効にするには、オプションFEAT_LSE
lse
/arch:armv8.0+lse
が . 使用可能な機能とその要件の詳細については、(ARM64)3 を参照してください/feature
。
Note
Visual Studio のバージョンによっては、指定した拡張機能レベルで必要なすべての機能セットから命令がまだコンパイラによって生成されない場合があります。 たとえば、/arch:armv8.1
組み込み関数で Armv8.1-A 拡張機能でFEAT_LSE
導入された適切なアトミック命令を使用できますが*Interlocked*
、コンパイラのサポートには Visual Studio 2022 バージョン 17.2 以降が必要です。
_M_ARM64
このマクロは、ARM64 ターゲットのコンパイル時に既定で定義されます。 詳細については、「定義済みマクロ」を参照してください 。\
マクロは __ARM_ARCH
、以降に対して /arch:ARMv8.0
定義されます。 これは、コンパイラが対象としている ARM アーキテクチャ拡張レベルを示します。 詳細については、「定義済みマクロ」を参照してください。
#if __ARM_ARCH >= 802
// code that requires ARMv8.2...
#endif
/arch
は、ネイティブ関数のコード生成にのみ影響します。 コンパイルに使用 /clr
する場合、 /arch
マネージド関数のコード生成には影響しません。
Visual Studio で /arch
コンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「Visual Studio で C++ コンパイラとビルド プロパティを設定する」をご覧ください。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
[その他の オプション ] ボックスで、別の ARM64 拡張機能を追加
/arch:armv8.0
または置き換えますarmv8.0
。 [OK] を選択して変更を保存します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。AdditionalOptions
1 Armv8-A アーキテクチャ拡張機能 armv8.9
は、Visual Studio 2022 バージョン 17.10 以降で使用できます。
2 Armv9-A アーキテクチャ拡張機能は、Visual Studio 2022 バージョン 17.10 以降で使用できます。
3 Visual Studio 2022 バージョン 17.10 以降では、アーキテクチャ機能の有効化を利用できます。
関連項目
/arch
(最小 CPU アーキテクチャ)
定義済みマクロ
MSVC コンパイラ オプション
MSVC コンパイラのコマンド ライン構文
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示