Dela via


/arch (ARM64)

Anger arkitekturtillägget Arm A-Profile för kodgenerering på ARM64. Mer information om /arch för andra målarkitekturer finns i /arch (x86), /arch (x64)och /arch (ARM).

Syntax

/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9> [+funktion]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4> [+funktion]

Argument

/arch:armv8.x
Anger arkitekturen Armv8-A, där x är ett obligatoriskt tilläggsvärde från 0 till 91. Kompilatorn använder som standard /arch:armv8.0 beteende om ingen arkitektur har angetts.

/arch:armv9.x 2
Anger Armv9-A-arkitekturen, där x är ett obligatoriskt tilläggsvärde från 0 till 4. Kompilatorn använder som standard /arch:armv8.0 beteende om ingen arkitektur har angetts.

Anmärkningar

Du kan ange ett ARM64-tillägg från Armv8.0-A till Armv8.9-A och Armv9.0-A via Armv9.4-A. Du kan också aktivera en eller flera arkitekturfunktioner genom att lägga till ett funktionsargument till alternativet3. Om du till exempel vill använda Armv8.0-A som mål och aktivera funktion FEAT_LSElägger du till funktionsargumentet lse så att alternativet blir /arch:armv8.0+lse. Mer information om tillgängliga funktioner och deras krav finns i /feature (ARM64)3.

Not

Beroende på din version av Visual Studio kanske kompilatorn ännu inte genererar instruktioner från alla funktionsuppsättningar som krävs av den tilläggsnivå som du anger. Till exempel tillåter /arch:armv8.1 att *Interlocked* inbyggda funktioner använder lämplig atomisk instruktion som introducerades med armv8.1-A-tilläggsfunktionen FEAT_LSE, men kompilatorstöd kräver Visual Studio 2022 version 17.2 eller senare.

Det _M_ARM64 makrot definieras som standard vid kompilering för ett ARM64-mål. Mer information finns i fördefinierade makron.

Makrot __ARM_ARCH definieras för /arch:ARMv8.0 och senare. Det anger arm-arkitekturtilläggsnivån som kompilatorn riktar in sig på. Mer information finns i fördefinierade makron.

#if __ARM_ARCH >= 802
    // code that requires ARMv8.2...
#endif

/arch påverkar endast kodgenerering för inbyggda funktioner. När du använder /clr för att kompilera har /arch ingen effekt på kodgenereringen för hanterade funktioner.

Så här anger du /arch kompilatoralternativet i Visual Studio

  1. Öppna dialogrutan egenskapssidor för projektet. Mer information finns i Ange C++-kompilator- och byggegenskaper i Visual Studio.

  2. Välj egenskapssidan Konfigurationsegenskaper>C/C++>kommandorad.

  3. I rutan Ytterligare alternativ lägger du till /arch:armv8.0 eller ersätter armv8.0 med ett annat ARM64-tillägg. Välj OK för att spara ändringarna.

Så här ställer du in det här kompilatoralternativet programmatiskt

1 Armv8-A arkitekturtillägg armv8.9 är tillgängligt från och med Visual Studio 2022 version 17.10.
2 Armv9-A arkitekturtillägg är tillgängliga från och med Visual Studio 2022 version 17.10.
3 Arkitektur är funktionsaktivering tillgänglig från och med Visual Studio 2022 version 17.10.

Se även

/arch (minsta cpu-arkitektur)
fördefinierade makron
MSVC-kompilatoralternativ
kommandoradssyntax för MSVC-kompilatorn