/arch
(ARM64)
Menentukan ekstensi arsitektur Arm A-Profile untuk pembuatan kode di ARM64. Untuk informasi selengkapnya tentang /arch
arsitektur target lainnya, lihat /arch
(x86), /arch
(x64), dan /arch
(ARM).
Sintaks
/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>
[+fitur]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>
[+fitur]
Argumen
/arch:armv8.x
Menentukan arsitektur Armv8-A, di mana x
merupakan nilai ekstensi yang diperlukan dari 0
ke 9
1. Secara default, pengkompilasi menggunakan /arch:armv8.0
perilaku jika tidak ada arsitektur yang ditentukan.
/arch:armv9.x
2
Menentukan arsitektur Armv9-A, di mana x
adalah nilai ekstensi yang diperlukan dari 0
ke 4
. Secara default, pengkompilasi menggunakan /arch:armv8.0
perilaku jika tidak ada arsitektur yang ditentukan.
Keterangan
Anda dapat menentukan ekstensi ARM64 dari Armv8.0-A hingga Armv8.9-A, dan Armv9.0-A melalui Armv9.4-A. Secara opsional, aktifkan satu atau beberapa fitur arsitektur dengan menambahkan argumen fitur ke opsi3. Misalnya, untuk menargetkan Armv8.0-A dan mengaktifkan fitur FEAT_LSE
, tambahkan argumen lse
fitur sehingga opsi menjadi /arch:armv8.0+lse
. Untuk informasi selengkapnya tentang fitur yang tersedia dan persyaratannya, lihat (ARM64)3./feature
Catatan
Bergantung pada versi Visual Studio Anda, pengkompilasi mungkin belum menghasilkan instruksi dari semua set fitur yang diperlukan oleh tingkat ekstensi yang Anda tentukan. Misalnya, /arch:armv8.1
memungkinkan *Interlocked*
fungsi intrinsik untuk menggunakan instruksi atom yang sesuai yang diperkenalkan dengan fitur FEAT_LSE
ekstensi Armv8.1-A , tetapi dukungan kompilator memerlukan Visual Studio 2022 versi 17.2 atau yang lebih baru.
_M_ARM64
Makro didefinisikan secara default saat mengkompilasi untuk target ARM64. Untuk informasi selengkapnya, lihat Makro yang telah ditentukan sebelumnya\
__ARM_ARCH
Makro didefinisikan untuk /arch:ARMv8.0
dan lebih tinggi. Ini menunjukkan tingkat ekstensi arsitektur ARM yang ditargetkan pengkompilasi. Untuk informasi selengkapnya, lihat Makro yang telah ditentukan sebelumnya.
#if __ARM_ARCH >= 802
// code that requires ARMv8.2...
#endif
/arch
hanya memengaruhi pembuatan kode untuk fungsi asli. Saat Anda menggunakan /clr
untuk mengkompilasi, /arch
tidak berpengaruh pada pembuatan kode untuk fungsi terkelola.
Untuk mengatur /arch
opsi pengkompilasi di Visual Studio
Buka kotak dialog Halaman Properti untuk proyek. Untuk informasi selengkapnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Dalam kotak Opsi tambahan, tambahkan
/arch:armv8.0
atau gantiarmv8.0
dengan ekstensi ARM64 yang berbeda. Pilih OK untuk menyimpan perubahan.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat AdditionalOptions.
1 Ekstensi armv8.9
arsitektur Armv8-A tersedia mulai visual Studio 2022 versi 17.10.
2 Ekstensi arsitektur Armv9-A tersedia mulai visual Studio 2022 versi 17.10.
3 Pengaktifan fitur Arsitektur tersedia mulai dari Visual Studio 2022 versi 17.10.
Lihat juga
/arch
(Arsitektur CPU minimum)
Makro yang telah ditentukan sebelumnya
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC