as - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

as AS – der tragbare GNU-Assembler.

ZUSAMMENFASSUNG

as [-a[cdghlns][=file]] [--alternate] [--compress-debug-sections] [--nocompress-debug-sections] [-D] [--dump-config] [--debug-prefix-map old=new] [--defsym sym=val] [--elf-stt-common=[no|yes]] [--emulation=name] [-f] [-g] [--gstabs] [--gstabs+] [--gdwarf-<N>] [--gdwarf-sections] [--gdwarf-cie-version=VERSION] [--generate-missing-build-notes=[no|yes]] [--gsframe] [--hash-size=N] [--help] [--target-help] [-I dir] [-J] [-K] [--keep-locals] [-L] [--listing-lhs-width=NUM] [--listing-lhs-width2=NUM] [--listing-rhs-width=NUM] [--listing-cont-lines=NUM] [--multibyte-handling=[allow|warn|warn-sym-only]] [--no-pad-sections] [-o objfile] [-R] [--sectname-subst] [--size-check=[error|warning]] [--statistics] [-v] [-version] [--version] [-W] [--warn] [--fatal-warnings] [-w] [-x] [-Z] [@FILE] [target-options] [--|files ...]

ZIEL

Ziel-AArch64-Optionen:

[-EB|-EL] [-mabi=ABI]

Ziel-Alpha-Optionen:

[-mcpu] [-mdebug | -no-mdebug] [-replace | -noreplace] [-relax] [-g] [-Gsize] [-F] [-32addr]

Ziel-ARC-Optionen:

[-mcpu=cpu] [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS] [-mcode-density] [-mrelax] [-EB|-EL]

Ziel-ARM-Optionen:

[-mcpu=processor[+extension...]] [-march=architecture[+extension...]] [-mfpu=floating-point-format] [-mfloat-abi=abi] [-meabi=ver] [-mthumb] [-EB|-EL] [-mapcs-32|-mapcs-26|-mapcs-float| -mapcs-reentrant] [-mthumb-interwork] [-k]

Ziel-Blackfin-Optionen:

[-mcpu=processor[-sirevision]] [-mfdpic] [-mno-fdpic] [-mnopic]

Ziel-BPF-Optionen:

[-EL] [-EB]

Ziel-CRIS-Optionen:

[--underscore | --no-underscore] [--pic] [-N] [--emulation=criself | --emulation=crisaout] [--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]

Ziel-C-SKY-Optionen:

[-march=arch] [-mcpu=cpu] [-EL] [-mlittle-endian] [-EB] [-mbig-endian] [-fpic] [-pic] [-mljump] [-mno-ljump] [-force2bsr] [-mforce2bsr] [-no-force2bsr] [-mno-force2bsr] [-jsri2bsr] [-mjsri2bsr] [-no-jsri2bsr ] [-mno-jsri2bsr] [-mnolrw ] [-mno-lrw] [-melrw] [-mno-elrw] [-mlaf ] [-mliterals-after-func] [-mno-laf] [-mno-literals-after-func] [-mlabr] [-mliterals-after-br] [-mno-labr] [-mnoliterals-after-br] [-mistack] [-mno-istack] [-mhard-float] [-mmp] [-mcp] [-mcache] [-msecurity] [-mtrust] [-mdsp] [-medsp] [-mvdsp]

Ziel-D10V-Optionen:

[-O]

Ziel-D30V-Optionen:

[-O|-n|-N]

Zieloptionen für EPIPHANY:

[-mepiphany|-mepiphany16]

Zieloptionen für H8/300:

[-h-tick-hex]

Ziel-i386-Optionen:

[--32|--x32|--64] [-n] [-march=CPU[+EXTENSION...]] [-mtune=CPU]

Zieloptionen für IA-64:

[-mconstant-gp|-mauto-pic] [-milp32|-milp64|-mlp64|-mp64] [-mle|mbe] [-mtune=itanium1|-mtune=itanium2] [-munwind-check=warning|-munwind-check=error] [-mhint.b=ok|-mhint.b=warning|-mhint.b=error] [-x|-xexplicit] [-xauto] [-xdebug]

Ziel-IP2K-Optionen:

[-mip2022|-mip2022ext]

Ziel-M32C-Optionen:

[-m32c|-m16c] [-relax] [-h-tick-hex]

Ziel-M32R-Optionen:

[--m32rx|--[no-]warn-explicit-parallel-conflicts| --W[n]p]

Ziel-M680X0-Optionen:

[-l] [-m68000|-m68010|-m68020|...]

Ziel M68HC11-Optionen:

[-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg] [-mshort|-mlong] [-mshort-double|-mlong-double] [--force-long-branches] [--short-branches] [--strict-direct-mode] [--print-insn-syntax] [--print-opcodes] [--generate-example]

Ziel-MCORE-Optionen:

[-jsri2bsr] [-sifilter] [-relax] [-mcpu=[210|340]]

Ziel-Meta-Optionen:

[-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] 

Ziel-MICROBLAZE-Optionen:

Ziel-MIPS-Optionen:

[-nocpp] [-EL] [-EB] [-O[optimization level]] [-g[debug level]] [-G num] [-KPIC] [-call_shared] [-non_shared] [-xgot [-mvxworks-pic] [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32] [-mfp64] [-mgp64] [-mfpxx] [-modd-spreg] [-mno-odd-spreg] [-march=CPU] [-mtune=CPU] [-mips1] [-mips2] [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2] [-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2] [-mips64r3] [-mips64r5] [-mips64r6] [-construct-floats] [-no-construct-floats] [-mignore-branch-isa] [-mno-ignore-branch-isa] [-mnan=encoding] [-trap] [-no-break] [-break] [-no-trap] [-mips16] [-no-mips16] [-mmips16e2] [-mno-mips16e2] [-mmicromips] [-mno-micromips] [-msmartmips] [-mno-smartmips] [-mips3d] [-no-mips3d] [-mdmx] [-no-mdmx] [-mdsp] [-mno-dsp] [-mdspr2] [-mno-dspr2] [-mdspr3] [-mno-dspr3] [-mmsa] [-mno-msa] [-mxpa] [-mno-xpa] [-mmt] [-mno-mt] [-mmcu] [-mno-mcu] [-mcrc] [-mno-crc] [-mginv] [-mno-ginv] [-mloongson-mmi] [-mno-loongson-mmi] [-mloongson-cam] [-mno-loongson-cam] [-mloongson-ext] [-mno-loongson-ext] [-mloongson-ext2] [-mno-loongson-ext2] [-minsn32] [-mno-insn32] [-mfix7000] [-mno-fix7000] [-mfix-rm7000] [-mno-fix-rm7000] [-mfix-vr4120] [-mno-fix-vr4120] [-mfix-vr4130] [-mno-fix-vr4130] [-mfix-r5900] [-mno-fix-r5900] [-mdebug] [-no-mdebug] [-mpdr] [-mno-pdr]

Ziel-MMIX-Optionen:

[--fixed-special-register-names] [--globalize-symbols] [--gnu-syntax] [--relax] [--no-predefined-symbols] [--no-expand] [--no-merge-gregs] [-x] [--linker-allocated-gregs]

Zieloptionen für Nios II:

[-relax-all] [-relax-section] [-no-relax] [-EB] [-EL]

Ziel-NDS32-Optionen:

[-EL] [-EB] [-O] [-Os] [-mcpu=cpu] [-misa=isa] [-mabi=abi] [-mall-ext] [-m[no-]16-bit] [-m[no-]perf-ext] [-m[no-]perf2-ext] [-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div] [-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext] [-m[no-]fpu-fma] [-mfpu-freg=FREG] [-mreduced-regs] [-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax] [-mb2bb]

Ziel-PDP11-Optionen:

[-mpic|-mno-pic] [-mall] [-mno-extensions] [-mextension|-mno-extension] [-mcpu] [-mmachine]

Ziel-picoJava-Optionen:

[-mb|-me]

Ziel-PowerPC-Optionen:

[-a32|-a64] [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405| -m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mgekko| -mbroadway|-mppc64|-m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500| -me6500|-mppc64bridge|-mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x| -mpower6|-mpwr6|-mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2| -mcell|-mspe|-mspe2|-mtitan|-me300|-mcom] [-many] [-maltivec|-mvsx|-mhtm|-mvle] [-mregnames|-mno-regnames] [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb] [-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be] [-msolaris|-mno-solaris] [-nops=count]

Ziel-PRU-Optionen:

[-link-relax] [-mnolink-relax] [-mno-warn-regname-label]

Ziel-RISC-V-Optionen:

[-fpic|-fPIC|-fno-pic] [-march=ISA] [-mabi=ABI] [-mlittle-endian|-mbig-endian]

Ziel-RL78-Optionen:

[-mg10] [-m32bit-doubles|-m64bit-doubles]

Ziel-RX-Optionen:

[-mlittle-endian|-mbig-endian] [-m32bit-doubles|-m64bit-doubles] [-muse-conventional-section-names] [-msmall-data-limit] [-mpid] [-mrelax] [-mint-register=number] [-mgcc-abi|-mrx-abi]

Ziel-s390-Optionen:

[-m31|-m64] [-mesa|-mzarch] [-march=CPU] [-mregnames|-mno-regnames] [-mwarn-areg-zero]

Ziel-SCORE-Optionen:

[-EB][-EL][-FIXDD][-NWARN] [-SCORE5][-SCORE5U][-SCORE7][-SCORE3] [-march=score7][-march=score3] [-USE_R1][-KPIC][-O0][-G num][-V]

Ziel-SPARC-Optionen:

[-Av6|-Av7|-Av8|-Aleon|-Asparclet|-Asparclite -Av8plus|-Av8plusa|-Av8plusb|-Av8plusc|-Av8plusd -Av8plusv|-Av8plusm|-Av9|-Av9a|-Av9b|-Av9c -Av9d|-Av9e|-Av9v|-Av9m|-Asparc|-Asparcvis -Asparcvis2|-Asparcfmaf|-Asparcima|-Asparcvis3 -Asparcvisr|-Asparc5] [-xarch=v8plus|-xarch=v8plusa]|-xarch=v8plusb|-xarch=v8plusc -xarch=v8plusd|-xarch=v8plusv|-xarch=v8plusm|-xarch=v9 -xarch=v9a|-xarch=v9b|-xarch=v9c|-xarch=v9d|-xarch=v9e -xarch=v9v|-xarch=v9m|-xarch=sparc|-xarch=sparcvis -xarch=sparcvis2|-xarch=sparcfmaf|-xarch=sparcima -xarch=sparcvis3|-xarch=sparcvisr|-xarch=sparc5 -bump] [-32|-64] [--enforce-aligned-data][--dcti-couples-detect]

Ziel-TIC54X-Optionen:

[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf] [-merrors-to-file <filename>|-me <filename>]

Ziel-TIC6X-Optionen:

[-march=arch] [-mbig-endian|-mlittle-endian] [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far] [-mpic|-mno-pic]

Ziel-TILE-Gx-Optionen:

[-m32|-m64][-EB][-EL]

Zieloptionen für Visium:

[-mtune=arch]

Ziel-Xtensa-Optionen:

[--[no-]text-section-literals] [--[no-]auto-litpools] [--[no-]absolute-literals] [--[no-]target-align] [--[no-]longcalls] [--[no-]transform] [--rename-section oldname=newname] [--[no-]trampolines] [--abi-windowed|--abi-call0]

Ziel-Z80-Optionen:

[-march=CPU[-EXT][+EXT]] [-local-prefix=PREFIX] [-colonless] [-sdcc] [-fp-s=FORMAT] [-fp-d=FORMAT]

BESCHREIBUNG

GNU as ist eigentlich eine Familie von Assemblern. Wenn Sie den GNU-Assembler auf einer Architektur verwenden (oder verwendet haben), sollten Sie eine ziemlich ähnliche Umgebung vorfinden, wenn Sie ihn auf einer anderen Architektur verwenden. Jede Version hat viele Gemeinsamkeiten mit den anderen, einschließlich Objektdateiformaten, den meisten Assembler-Direktiven (oft als pseudo-ops bezeichnet) und der Assembler-Syntax.

as soll in erster Linie die Ausgabe des GNU-C-Compilers gcc zur Verwendung durch den Linker ld zusammenstellen. Dennoch haben wir versucht, alles korrekt zusammenzubauen, was andere Monteure für dieselbe Maschine zusammenbauen würden. Eventuelle Ausnahmen werden explizit dokumentiert. Dies bedeutet nicht, dass as immer dieselbe Syntax verwendet wie ein anderer Assembler für dieselbe Architektur; Beispielsweise sind uns mehrere inkompatible Versionen der Syntax der Assemblersprache 680x0 bekannt.

Jedes Mal, wenn Sie as ausführen, wird genau ein Quellprogramm zusammengestellt. Das Quellprogramm besteht aus einer oder mehreren Dateien. (Die Standardeingabe ist ebenfalls eine Datei.)

Sie geben as eine Befehlszeile ein, die null oder mehr Eingabedateinamen hat. Die Eingabedateien werden gelesen (vom linken Dateinamen nach rechts). Ein Befehlszeilenargument (an beliebiger Position), das keine besondere Bedeutung hat, wird als Eingabedateiname angesehen.

Wenn Sie as keine Dateinamen angeben, wird versucht, eine Eingabedatei aus der Standardeingabe as zu lesen, die normalerweise Ihr Terminal ist. Möglicherweise müssen Sie ctl-D eingeben, um zu erfahren, da kein weiteres Programm zum Zusammenstellen vorhanden ist.

Verwenden Sie --, wenn Sie die Standardeingabedatei in Ihrer Befehlszeile explizit benennen müssen.

Wenn die Quelle leer ist, erzeugt as eine kleine, leere Objektdatei.

as kann Warnungen und Fehlermeldungen in die Standardfehlerdatei (normalerweise Ihr Terminal) schreiben. Dies sollte nicht passieren, wenn ein Compiler automatisch ausgeführt wird. Warnungen melden eine Annahme, die dazu führen könnte, dass as weiterhin ein fehlerhaftes Programm zusammenstellt; Fehler melden ein schwerwiegendes Problem, das die Assembly stoppt.

Wenn Sie as über den GNU C-Compiler aufrufen, können Sie die Option -Wa verwenden, um Argumente an den Assembler weiterzuleiten. Die Assembler-Argumente müssen durch Kommas voneinander (und vom -Wa) getrennt werden. Zum Beispiel:

gcc -c -g -O -Wa,-alh,-L file.c

Dadurch werden zwei Optionen an den Assembler übergeben: -alh (eine Auflistung an die Standardausgabe mit High-Level- und Assembly-Quelle ausgeben) und -L (lokale Symbole in der Symboltabelle beibehalten). ).

Normalerweise müssen Sie diesen -Wa-Mechanismus nicht verwenden, da viele Compiler-Befehlszeilenoptionen vom Compiler automatisch an den Assembler übergeben werden. (Sie können den GNU-Compiler-Treiber mit der Option -v aufrufen, um genau zu sehen, welche Optionen er an jeden Kompilierungsdurchlauf, einschließlich des Assemblers, übergibt.)

OPTIONEN

  1. Befehlszeilenoptionen aus Datei lesen. Die gelesenen Optionen werden anstelle der ursprünglichen Option @file eingefügt. Wenn file nicht existiert oder nicht gelesen werden kann, wird die Option wörtlich behandelt und nicht entfernt. Optionen in file werden durch Leerzeichen getrennt. Ein Leerzeichen kann in eine Option eingefügt werden, indem die gesamte Option in einfache oder doppelte Anführungszeichen gesetzt wird. Jedes Zeichen (einschließlich eines Backslashs) kann eingefügt werden, indem dem einzufügenden Zeichen ein Backslash vorangestellt wird. Die Datei kann selbst zusätzliche @Datei-Optionen enthalten; Alle derartigen Optionen werden rekursiv verarbeitet.

-a[cdghlmns]

Aktivieren Sie Einträge auf verschiedene Arten:

-ac

Lassen Sie falsche Bedingungen weg

-ad

Lassen Sie Debugging-Anweisungen weg

-ag

enthalten allgemeine Informationen, wie z. B. Version und übergebene Optionen

-ah

Hochrangige Quelle einschließen

-al

inklusive Montage

-am

Makroerweiterungen einschließen

-an

Formularverarbeitung auslassen

-as

Symbole enthalten

=file

Legen Sie den Namen der Auflistungsdatei fest

Sie können diese Optionen kombinieren; Verwenden Sie beispielsweise -aln für eine Baugruppenliste ohne Formularverarbeitung. Die Option =file muss, falls verwendet, die letzte sein. -a ist standardmäßig -ahls.

--alternate

Beginnen Sie im alternativen Makromodus.

--compress-debug-sections

Komprimieren Sie DWARF-Debug-Abschnitte mit zlib mit SHF_COMPRESSED aus dem ELF-ABI. Die resultierende Objektdatei ist möglicherweise nicht mit älteren Linkern und Objektdatei-Dienstprogrammen kompatibel. Beachten Sie, dass ein bestimmter Abschnitt durch die Komprimierung nicht komprimiert wird.

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
--compress-debug-sections=zstd

Diese Optionen steuern, wie DWARF-Debug-Abschnitte komprimiert werden. --compress-debug-sections=none ist äquivalent zu --nocompress-debug-sections. --compress-debug-sections=zlib und --compress-debug-sections=zlib-gabi sind äquivalent zu --compress-debug-sections. --compress-debug-sections=zlib-gnu komprimiert DWARF-Debug-Abschnitte mit dem veralteten zlib-gnu-Format. Die Debug-Abschnitte werden umbenannt und beginnen mit .zdebug. --compress-debug-sections=zstd komprimiert DWARF-Debug-Abschnitte mit zstd. Hinweis: Wenn durch die Komprimierung ein Abschnitt tatsächlich größer würde, wird er weder komprimiert noch umbenannt.

--nocompress-debug-sections

Komprimieren Sie keine DWARF-Debug-Abschnitte. Dies ist normalerweise die Standardeinstellung für alle Ziele außer x86/x86_64, aber eine Zeitkonfigurationsoption kann verwendet werden, um dies zu überschreiben.

-D

Aktivieren Sie das Denugging in zielspezifischen Backends, sofern dies unterstützt wird. Ansonsten ignoriert. Auch wenn diese Option ignoriert wird, wird sie aus Gründen der Skriptkompatibilität mit Aufrufen anderer Assembler akzeptiert.

--debug-prefix-map old=new

Wenn Sie Dateien im Verzeichnis alt zusammenstellen, zeichnen Sie stattdessen Debugging-Informationen auf, die sie als neu beschreiben.

--defsym sym=value

Definieren Sie das Symbol sym als value, bevor Sie die Eingabedatei zusammenstellen. Wert muss eine ganzzahlige Konstante sein. Wie in C gibt ein führendes 0x einen hexadezimalen Wert und eine führende 0 einen oktalen Wert an. Der Wert des Symbols kann innerhalb einer Quelldatei mithilfe eines .set-Pseudo-Op überschrieben werden.

--dump-config

Zeigt an, wie der Assembler konfiguriert ist, und wird dann beendet.

--elf-stt-common=no
--elf-stt-common=yes

Diese Optionen steuern, ob der ELF-Assembler allgemeine Symbole mit dem Typ STT_COMMON generieren soll. Der Standardwert kann durch eine Konfigurationsoption --enable-elf-stt-common gesteuert werden.

--emulation=name

Wenn der Assembler so konfiguriert ist, dass er mehrere verschiedene Zielkonfigurationen unterstützt, kann diese Option verwendet werden, um das gewünschte Formular auszuwählen.

-f

schnell – Leerzeichen und Kommentarvorverarbeitung überspringen (angenommen, die Quelle ist die Compiler-Ausgabe).

-g
--gen-debug

Generieren Sie Debugging-Informationen für jede Assembler-Quellzeile unter Verwendung des vom Ziel bevorzugten Debug-Formats. Dies bedeutet derzeit entweder STABS, ECOFF oder DWARF2. Wenn das Debug-Format DWARF ist, werden die Abschnitte .debug_info und .debug_line nur dann ausgegeben, wenn die Assemblydatei selbst keinen generiert.

--gstabs

Generieren Sie Stabs-Debugging-Informationen für jede Assemblerzeile. Dies kann beim Debuggen von Assemblercode hilfreich sein, wenn der Debugger damit umgehen kann.

--gstabs+

Generieren Sie Stabs-Debugging-Informationen für jede Assemblerzeile mit GNU-Erweiterungen, die wahrscheinlich nur von GDB verarbeitet werden können und die andere Debugger zum Absturz bringen oder das Lesen Ihres Programms verweigern könnten. Dies kann beim Debuggen von Assemblercode hilfreich sein. Derzeit ist die einzige GNU-Erweiterung der Speicherort des aktuellen Arbeitsverzeichnisses zum Zeitpunkt der Assemblierung.

--gdwarf-2

Generieren Sie DWARF2-Debugging-Informationen für jede Assemblerzeile. Dies kann beim Debuggen von Assemblercode hilfreich sein, wenn der Debugger damit umgehen kann. Hinweis: Diese Option wird nur von einigen Zielen unterstützt, nicht von allen.

--gdwarf-3

Diese Option ist mit der Option --gdwarf-2 identisch, außer dass sie die Möglichkeit der Generierung zusätzlicher Debug-Informationen gemäß Version 3 der DWARF-Spezifikation ermöglicht. Hinweis: Die Aktivierung dieser Option garantiert nicht die Generierung zusätzlicher Informationen. Die Auswahl hierfür erfolgt auf Einzelzielbasis.

--gdwarf-4

Diese Option ist mit der Option --gdwarf-2 identisch, außer dass sie die Möglichkeit der Generierung zusätzlicher Debug-Informationen gemäß Version 4 der DWARF-Spezifikation ermöglicht. Hinweis: Die Aktivierung dieser Option garantiert nicht die Generierung zusätzlicher Informationen. Die Entscheidung, ob dies erfolgen soll, erfolgt je nach Ziel.

--gdwarf-5

Diese Option ist mit der Option --gdwarf-2 identisch, außer dass sie die Möglichkeit der Generierung zusätzlicher Debug-Informationen gemäß Version 5 der DWARF-Spezifikation ermöglicht. Hinweis: Die Aktivierung dieser Option garantiert nicht die Generierung zusätzlicher Informationen. Die Auswahl hierfür erfolgt auf Einzelzielbasis.

--gdwarf-sections

Anstatt einen .debug_line-Abschnitt zu erstellen, erstellen Sie eine Reihe von .debug_line.foo-Abschnitten, wobei foo der Name des entsprechenden Codeabschnitts ist. Beispielsweise werden bei einem Codeabschnitt mit dem Namen .text.func die Informationen zur Zwergzeilennummer in einem Abschnitt mit dem Namen .debug_line.text.func platziert. Wenn der Codeabschnitt nur .text heißt, heißt der Debugzeilenabschnitt weiterhin nur .debug_line ohne Suffix.

--gdwarf-cie-version=version

Steuern Sie, welche Version von DWARF Common Information Entries (CIEs) erstellt wird. Wenn dieses Flag nicht angegeben ist, ist die Standardeinstellung Version 1, obwohl einige Ziele diese Standardeinstellung ändern können. Andere mögliche Werte für version sind 3 oder 4.

--generate-missing-build-notes=yes
--generate-missing-build-notes=no

Diese Optionen steuern, ob der ELF-Assembler GNU Build-Attributnotizen generieren soll, wenn in den Eingabequellen keine vorhanden sind. Der Standardwert kann durch die Konfigurationsoption --enable-generate-build-notes gesteuert werden.

--gsframe
--gsframe

Erstellen Sie den Abschnitt .sframe aus CFI-Anweisungen.

--hash-size N

Ignoriert. Unterstützt für Befehlszeilenkompatibilität mit anderen Assemblern.

--help

Drucken Sie eine Zusammenfassung der Befehlszeilenoptionen und beenden Sie den Vorgang.

--target-help

Drucken Sie eine Zusammenfassung aller zielspezifischen Optionen aus und beenden Sie den Vorgang.

-I dir

Fügen Sie das Verzeichnis dir zur Suchliste für .include-Direktiven hinzu.

-J

Warnen Sie nicht vor einem signierten Überlauf.

-K

Geben Sie Warnungen aus, wenn sich Differenztabellen aufgrund großer Verschiebungen ändern.

-L
--keep-locals

Behalten Sie (in der Symboltabelle) lokale Symbole bei. Diese Symbole beginnen mit systemspezifischen lokalen Label-Präfixen, typischerweise .L für ELF-Systeme oder L für traditionelle a.out-Systeme.

--listing-lhs-width=number

Legen Sie die maximale Breite (in Worten) der Ausgabedatenspalte für eine Assembler-Liste auf Zahl fest.

--listing-lhs-width2=number

Legen Sie die maximale Breite (in Worten) der Ausgabedatenspalte für Fortsetzungszeilen in einer Assembler-Liste auf Zahl fest.

--listing-rhs-width=number

Legen Sie die maximale Breite einer Eingabequellzeile, wie sie in einer Auflistung angezeigt wird, auf Anzahl Bytes fest.

--listing-cont-lines=number

Legen Sie die maximale Anzahl der gedruckten Zeilen in einer Auflistung für eine einzelne Eingabezeile auf Anzahl + 1 fest.

--multibyte-handling=allow
--multibyte-handling=warn
--multibyte-handling=warn-sym-only
--multibyte-handling=warn_sym_only

Steuert, wie der Assembler Multibyte-Zeichen in der Eingabe verarbeitet. Die Standardeinstellung (die mit dem Argument allow wiederhergestellt werden kann) besteht darin, solche Zeichen ohne Beanstandung zuzulassen. Durch die Verwendung des Arguments warn generiert der Assembler eine Warnmeldung, wann immer ein Multibyte-Zeichen auftritt. Die Verwendung des Arguments warn-sym-only führt nur dann zur Generierung einer Warnung, wenn ein Symbol mit einem Namen definiert wird, der Multibyte-Zeichen enthält. (Verweise auf undefinierte Symbole erzeugen keine Warnung).

--no-pad-sections

Stoppen Sie den Assembler, um die Enden der Ausgabeabschnitte entsprechend der Ausrichtung dieses Abschnitts aufzufüllen. Standardmäßig werden die Abschnitte aufgefüllt. Dadurch kann jedoch Speicherplatz verschwendet werden, der möglicherweise auf Zielen mit engen Speicherbeschränkungen benötigt wird.

-o objfile

Benennen Sie die Objektdateiausgabe von als objfile.

-R

Falten Sie den Datenabschnitt in den Textabschnitt.

--reduce-memory-overheads

Ignoriert. Wird aus Gründen der Kompatibilität mit Tools unterstützt, die sowohl dem Assembler als auch dem Linker die gleiche Option bieten.

--sectname-subst

Berücksichtigen Sie Ersetzungssequenzen in Abschnittsnamen.

--size-check=error
--size-check=warning

Geben Sie einen Fehler oder eine Warnung für eine ungültige ELF-.size-Direktive aus.

--statistics

Gibt den maximalen Speicherplatz (in Bytes) und die Gesamtzeit (in Sekunden) aus, die von der Assembly verwendet werden.

--strip-local-absolute

Entfernen Sie lokale absolute Symbole aus der ausgehenden Symboltabelle.

-v
-version

Drucken Sie die as-Version aus.

--version

Drucken Sie die as-Version aus und beenden Sie den Vorgang.

-W
--no-warn

Warnmeldungen unterdrücken.

--fatal-warnings

Behandeln Sie Warnungen als Fehler.

--warn

Unterdrücken Sie Warnmeldungen nicht und behandeln Sie sie nicht als Fehler.

-w

Ignoriert.

-x

Ignoriert.

-Z

Generieren Sie auch nach Fehlern eine Objektdatei.

-- | files ...

Standardeingabe oder Quelldateien zum Zusammenstellen.

Die folgenden Optionen sind verfügbar, wenn sie für den 64-Bit-Modus der ARM-Architektur (AArch64) konfiguriert sind.

-EB

Diese Option gibt an, dass die vom Assembler generierte Ausgabe als für einen Big-Endian-Prozessor codiert markiert werden soll.

-EL

Diese Option gibt an, dass die vom Assembler generierte Ausgabe als für einen Little-Endian-Prozessor codiert markiert werden soll.

-mabi=abi

Geben Sie an, welches ABI der Quellcode verwendet. Die erkannten Argumente sind: ilp32 und lp64, die die generierte Objektdatei im ELF32- bzw. ELF64-Format festlegen. Der Standardwert ist lp64.

-mcpu=processor[+extension...]

Diese Option gibt den Zielprozessor an. Der Assembler gibt eine Fehlermeldung aus, wenn versucht wird, eine Anweisung zu assemblieren, die auf dem Zielprozessor nicht ausgeführt werden kann. Die folgenden Prozessornamen werden erkannt: cortex-a34, cortex-a35, cortex-a53, cortex-a55 , cortex-a57, cortex-a65, cortex-a65ae, cortex-a72, cortex- a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78ae, cortex-a78c, cortex-a510, cortex-a710 , ares, exynos-m1, falkor, neoverse-n1, neoverse- n2, neoverse-e1, neoverse-v1, qdf24xx, saphira, thunderx , vulcan, xgene1 xgene2, cortex-r82, cortex-x1 und cortex-x2.

Der spezielle Name all kann verwendet werden, um dem Assembler zu ermöglichen, Anweisungen zu akzeptieren, die für jeden unterstützten Prozessor gültig sind, einschließlich aller optionalen Erweiterungen. Zusätzlich zum grundlegenden Befehlssatz kann der Assembler angewiesen werden, verschiedene Erweiterungsmnemoniken, die den Prozessor erweitern, zu akzeptieren oder einzuschränken. Wenn einige Implementierungen eines bestimmten Prozessors eine Erweiterung haben können, werden diese Erweiterungen automatisch aktiviert. Daher müssen Sie in der Regel keine weiteren Erweiterungen angeben.

-march=architecture[+extension...]

Diese Option gibt die Zielarchitektur an. Der Assembler gibt eine Fehlermeldung aus, wenn versucht wird, eine Anweisung zu assemblieren, die auf der Zielarchitektur nicht ausgeführt werden kann. Die folgenden Architekturnamen werden erkannt: armv8-a, armv8.1-a, armv8.2-a, armv8.3 -a, armv8.4-a armv8.5-a, armv8.6-a, armv8. 7-a, armv8.8-a, armv8-r, armv9-a, armv9.1- a, armv9.2-a und armv9.3-a. Wenn sowohl -mcpu als auch -march angegeben sind, verwendet der Assembler die Einstellung für -mcpu. Wenn keines von beiden angegeben ist, verwendet der Assembler standardmäßig -mcpu=all. Die Architekturoption kann mit denselben Befehlssatzerweiterungsoptionen wie die Option -mcpu erweitert werden. Im Gegensatz zu -mcpu sind Erweiterungen nicht immer standardmäßig aktiviert.

-mverbose-error

Diese Option ermöglicht ausführliche Fehlermeldungen für AArch64-Gas. Diese Option ist standardmäßig aktiviert.

-mno-verbose-error

Diese Option deaktiviert ausführliche Fehlermeldungen in AArch64-Gas.

Die folgenden Optionen sind verfügbar, wenn as für einen Alpha-Prozessor konfiguriert ist.

-mcpu

Diese Option gibt den Zielprozessor an. Wenn versucht wird, eine Anweisung zusammenzustellen, die auf dem Zielprozessor nicht ausgeführt werden kann, kann der Assembler die Anweisung entweder als Makro erweitern oder eine Fehlermeldung ausgeben. Diese Option entspricht der Direktive .arch. Folgende Prozessornamen werden erkannt: 21064, 21064a, 21066, 21068, 21164, 21164a, 21164pc, 21264, 21264a, 21264b, ev4, ev5, lca45, ev5, ev56, pca56 , ev6, ev67, ev68. Der spezielle Name all kann verwendet werden, um dem Assembler zu ermöglichen, Anweisungen zu akzeptieren, die für jeden Alpha-Prozessor gültig sind. Um die bestehende Praxis in OSF/1 in Bezug auf .arch und die bestehende Praxis innerhalb von MILO (dem Linux ARC-Bootloader) zu unterstützen, werden die nummerierten Prozessornamen (z. B. 21064) Aktivieren Sie die prozessorspezifischen PALcode-Anweisungen, während dies bei elektrolasischen Namen (z. B. ev4) nicht der Fall ist.

-mdebug
-no-mdebug

Aktiviert oder deaktiviert die Generierung der .mdebug-Kapselung für Stabs-Direktiven und Prozedurdeskriptoren. Standardmäßig wird .mdebug automatisch aktiviert, wenn die erste Stabs-Direktive angezeigt wird.

-relax

Diese Option erzwingt, dass alle Verschiebungen in die Objektdatei eingefügt werden, anstatt Platz zu sparen und einige Verschiebungen zur Montagezeit aufzulösen. Beachten Sie, dass diese Option nicht die gesamte Symbolarithmetik in die Objektdatei überträgt, da nicht die gesamte Symbolarithmetik dargestellt werden kann. In bestimmten Anwendungen kann die Option jedoch dennoch nützlich sein.

-replace
-noreplace

Aktiviert oder deaktiviert die Optimierung von Prozeduraufrufen, sowohl beim Assemblieren als auch beim Linken. Diese Optionen sind nur für VMS-Ziele verfügbar und -replace ist die Standardeinstellung. Siehe Abschnitt 1.4.1 des OpenVMS Linker Utility-Handbuchs.

-g

Diese Option wird verwendet, wenn der Compiler Debuginformationen generiert. Wenn gcc mips-tfile verwendet, um Debug-Informationen für ECOFF zu generieren, müssen lokale Labels an die Objektdatei weitergeleitet werden. Ansonsten hat diese Option keine Wirkung.

-Gsize

Ein lokales gemeinsames Symbol, das größer als size ist, wird in .bss platziert, während kleinere Symbole in .sbss platziert werden.

-F
-32addr

Diese Optionen werden aus Gründen der Abwärtskompatibilität ignoriert.

Die folgenden Optionen sind verfügbar, wenn für einen ARC-Prozessor konfiguriert ist.

-mcpu=cpu

Diese Option wählt die Kernprozessorvariante aus.

-EB | -EL

Wählen Sie entweder die Big-Endian-Ausgabe (-EB) oder die Little-Endian-Ausgabe (-EL).

-mcode-density

Aktivieren Sie die Anweisungen zur Erweiterung der Codedichte.

Die folgenden Optionen sind verfügbar, wenn sie für die ARM-Prozessorfamilie konfiguriert sind.

-mcpu=processor[+extension...]

Geben Sie an, welche ARM-Prozessorvariante das Ziel ist.

-march=architecture[+extension...]

Geben Sie an, welche ARM-Architekturvariante vom Ziel verwendet wird.

-mfpu=floating-point-format

Wählen Sie aus, welche Gleitkommaarchitektur das Ziel ist.

-mfloat-abi=abi

Wählen Sie aus, welches Gleitkomma-ABI verwendet wird.

-mthumb

Aktivieren Sie die Nur-Thumb-Befehlsdekodierung.

-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant

Wählen Sie aus, welche Prozeduraufrufkonvention verwendet wird.

-EB | -EL

Wählen Sie entweder die Big-Endian-Ausgabe (-EB) oder die Little-Endian-Ausgabe (-EL).

-mthumb-interwork

Geben Sie an, dass der Code unter Berücksichtigung der Zusammenarbeit zwischen Thumb- und ARM-Code generiert wurde.

-mccs

Aktiviert den CodeComposer Studio-Assembly-Syntaxkompatibilitätsmodus.

-k

Geben Sie an, dass PIC-Code generiert wurde.

Die folgenden Optionen sind verfügbar, wenn sie für die Blackfin-Prozessorfamilie konfiguriert sind.

-mcpu=processor[-sirevision]

Diese Option gibt den Zielprozessor an. Das optionale sirevision wird im Assembler nicht verwendet. Hier ist es so, dass GCC seine Option -mcpu= problemlos weitergeben kann. Der Assembler gibt eine Fehlermeldung aus, wenn versucht wird, eine Anweisung zu assemblieren, die auf dem Zielprozessor nicht ausgeführt werden kann. Folgende Prozessornamen werden erkannt: bf504, bf506, bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532, bf533, bf534 , bf535 (noch nicht implementiert), bf536, bf537, bf538, bf539 , bf542, bf542m, bf544, bf544m, bf547, bf547m , bf548, bf548m, bf549, bf549m, bf561, und bf592.

-mfdpic

Versammlung für das EDÖB-ABI.

-mno-fdpic
-mnopic

Deaktivieren Sie -mfdpic.

Die folgenden Optionen sind verfügbar, wenn sie für die BPF-Prozessorfamilie des Linux-Kernels konfiguriert sind.

@chapter BPF-abhängige Funktionen

Optionen

-EB

Diese Option gibt an, dass der Assembler Big-Endian-eBPF ausgeben soll.

-EL

Diese Option gibt an, dass der Assembler Little-Endian-eBPF ausgeben soll.

Beachten Sie, dass, wenn in der Befehlszeile keine Endianness-Option angegeben ist, die Host-Endianness verwendet wird. Die Dokumentation der CRIS-spezifischen Optionen finden Sie auf den Infoseiten.

Die folgenden Optionen sind verfügbar, wenn sie für die C-SKY-Prozessorfamilie konfiguriert sind.

-march=archname

Assemblieren Sie für die Architektur archname. Die Option --help listet gültige Werte für archname auf.

-mcpu=cpuname

Assemblieren Sie für die Architektur cpuname. Die Option --help listet gültige Werte für cpuname auf.

-EL
-mlittle-endian

Generieren Sie eine Little-Endian-Ausgabe.

-EB
-mbig-endian

Generieren Sie eine Big-Endian-Ausgabe.

-fpic
-pic

Generieren Sie ortsunabhängigen Code.

-mljump
-mno-ljump

Aktivieren/deaktivieren Sie die Umwandlung der kurzen Verzweigungsanweisungen jbf, jbt und jbr in jmpi. Diese Option gilt nur für V2-Prozessoren. Es wird auf CK801- und CK802-Zielen ignoriert, die die Anweisung jmpi nicht unterstützen, und ist für andere Prozessoren standardmäßig aktiviert.

-mbranch-stub
-mno-branch-stub

Übergeben Sie R_CKCORE_PCREL_IMM26BY2-Verschiebungen für bsr-Anweisungen an den Linker. Diese Option ist nur für Bare-Metal-C-SKY V2 ELF-Ziele verfügbar, wo sie standardmäßig aktiviert ist. Es kann nicht in Code verwendet werden, der dynamisch mit gemeinsam genutzten Bibliotheken verknüpft wird.

-force2bsr
-mforce2bsr
-no-force2bsr
-mno-force2bsr

Aktivieren/deaktivieren Sie die Umwandlung von jbsr-Anweisungen in bsr. Diese Option ist für CK801/CK802-Ziele immer aktiviert (und -mno-force2bsr wird ignoriert). Es ist auch immer aktiviert, wenn -mbranch-stub aktiv ist.

-jsri2bsr
-mjsri2bsr
-no-jsri2bsr
-mno-jsri2bsr

Aktivieren/deaktivieren Sie die Umwandlung von jsri-Anweisungen in bsr. Diese Option ist standardmäßig aktiviert.

-mnolrw
-mno-lrw

Aktivieren/deaktivieren Sie die Umwandlung von lrw-Anweisungen in ein movih/ori-Paar.

-melrw
-mno-elrw

Erweiterte lrw-Anweisungen aktivieren/deaktivieren. Diese Option ist für Prozessoren der CK800-Serie standardmäßig aktiviert.

-mlaf
-mliterals-after-func
-mno-laf
-mno-literals-after-func

Aktivieren/deaktivieren Sie die Platzierung von Literalpools nach jeder Funktion.

-mlabr
-mliterals-after-br
-mno-labr
-mnoliterals-after-br

Aktivieren/deaktivieren Sie die Platzierung von Literalpools nach bedingungslosen Verzweigungen. Diese Option ist standardmäßig aktiviert.

-mistack
-mno-istack

Interrupt-Stack-Anweisungen aktivieren/deaktivieren. Diese Option ist auf den Prozessoren CK801, CK802 und CK802 standardmäßig aktiviert.

Die folgenden Optionen aktivieren explizit bestimmte optionale Anweisungen. Diese Funktionen werden auch implizit aktiviert, indem -mcpu= verwendet wird, um einen Prozessor anzugeben, der sie unterstützt.

-mhard-float

Aktivieren Sie Hard-Float-Anweisungen.

-mmp

Aktivieren Sie Multiprozessor-Anweisungen.

-mcp

Coprozessoranweisungen aktivieren.

-mcache

Aktivieren Sie die Cache-Prefetch-Anweisung.

-msecurity

Aktivieren Sie die C-SKY-Sicherheitsanweisungen.

-mtrust

Aktivieren Sie C-SKY-Vertrauensanweisungen.

-mdsp

Aktivieren Sie DSP-Anweisungen.

-medsp

Aktivieren Sie erweiterte DSP-Anweisungen.

-mvdsp

Aktivieren Sie Vektor-DSP-Anweisungen.

Die folgenden Optionen sind verfügbar, wenn für einen Epiphany-Prozessor konfiguriert ist.

-mepiphany

Gibt an, dass sowohl 32- als auch 16-Bit-Befehle zulässig sind. Dies ist das Standardverhalten.

-mepiphany16

Beschränkt die zulässigen Anweisungen auf den 16-Bit-Satz.

Die folgenden Optionen sind verfügbar, wenn für einen H8/300-Prozessor konfiguriert ist. @chapter H8/300-abhängige Funktionen

Optionen

Die Renesas H8/300-Version von as verfügt über eine maschinenabhängige Option:

-h-tick-hex

Unterstützt Hex-Konstanten im H'00-Stil zusätzlich zum 0x00-Stil.

-mach=name

Legt die H8300-Maschinenvariante fest. Folgende Maschinennamen werden erkannt: h8300h, h8300hn, h8300s, h8300sn, h8300sx und h8300sxn.

Die folgenden Optionen sind verfügbar, wenn as für einen i386-Prozessor konfiguriert ist.

--32 | --x32 | --64

Wählen Sie die Wortgröße aus, entweder 32 Bit oder 64 Bit. --32 impliziert die Intel i386-Architektur, während --x32 und --64 die AMD x86-64-Architektur mit 32-Bit oder 64-Bit implizieren. Bitwortgröße bzw. Diese Optionen sind nur mit dem ELF-Objektdateiformat verfügbar und erfordern, dass die erforderliche BFD-Unterstützung enthalten ist (auf einer 32-Bit-Plattform müssen Sie --enable-64-bit-bfd hinzufügen, um die 64-Bit-Nutzung zu aktivieren und zu konfigurieren). x86-64 als Zielplattform verwenden).

-n

Standardmäßig ersetzt x86 GAS mehrere Nop-Anweisungen, die für die Ausrichtung innerhalb von Codeabschnitten verwendet werden, durch Multibyte-Nop-Anweisungen wie leal 0(%esi,1),%esi. Dieser Schalter deaktiviert die Optimierung, wenn ein einzelnes Byte nop (0x90) explizit als Füllbyte für die Ausrichtung angegeben wird.

--divide

Auf SVR4-abgeleiteten Plattformen wird das Zeichen / als Kommentarzeichen behandelt, was bedeutet, dass es nicht in Ausdrücken verwendet werden kann. Die Option --divide verwandelt / in ein normales Zeichen. Dadurch wird / am Anfang einer Zeile zum Starten eines Kommentars nicht deaktiviert und auch nicht die Verwendung von # zum Starten eines Kommentars beeinträchtigt.

-march=CPU[+EXTENSION...]

Diese Option gibt den Zielprozessor an. Der Assembler gibt eine Fehlermeldung aus, wenn versucht wird, eine Anweisung zu assemblieren, die auf dem Zielprozessor nicht ausgeführt werden kann. Folgende Prozessornamen werden erkannt: i8086, i186, i286, i386, i486, i586, i686, pentium, pentiumpro, pentiumii, pentiumiii, pentium4, prescott, nocona, core, core2 , corei7, iamcu, k6, k6_2, athlon, opteron , k8, amdfam10, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, btver1, btver2, generic32 und generic64. Zusätzlich zum Basisbefehlssatz kann der Assembler angewiesen werden, verschiedene Erweiterungsmnemoniken zu akzeptieren. Beispielsweise erweitert -march=i686+sse4+vmx i686 um sse4 und vmx.

Die folgenden Erweiterungen werden derzeit unterstützt: 8087, 287, 387, 687, cmov, fxsr, mmx, sse, sse2, sse3, sse4a, ssse3, sse4.1, sse4.2, sse4, avx , avx2, adx, rdseed, prfchw, smap, mpx, sha, rdpid, ptwrite, cet, gfni, vaes, vpclmulqdq, prefetchwt1, clflushopt, se1, clwb, movdiri, movdir64b, enqcmd, serialize, tsxldtrk, kl, widekl, hreset, avx512f, avx512cd, avx512er, avx512pf, avx512vl, avx512bw, avx512dq, avx512ifma, avx512vbmi, avx512_4fmaps, avx512_4vnniw, avx512_vpopcntdq, avx512_vbmi2, avx512_vnni, avx512_bitalg, avx512_vp2intersect, tdx, avx512_bf16, avx_vnni , avx512_fp16, prefetchi, avx_ifma, avx_vnni_int8, cmpccxadd, wrmsrns , msrlist, avx_ne_convert, rao_int, amx_int8, amx_bf16, amx_fp16, amx_tile, vmx, vmfunc, smx, xsave, xsaveopt, xsavec, xsaves, aes, pclmul, fsgsbase, rdrnd, f16c, bmi2, fma, movbe, ept, lzcnt, popcnt, hle, rtm, tsx, invpcid, clflush, mwaitx, clzero, wbnoinvd, pconfig, waitpkg, uintr, cldemote, rdpru, mcommit, sev_es, lwp, fma4, xop, cx16 , syscall, rdtscp, 3dnow, 3dnowa, sse4a, sse5 , snp, invlpgb, tlbsync, svme und padlock.

Beachten Sie, dass diesen Erweiterungsmnemoniken no vorangestellt werden kann, um die entsprechende (und alle abhängigen) Funktionen zu widerrufen. Wenn die .arch-Direktive mit -march verwendet wird, hat die .arch-Direktive Vorrang.

-mtune=CPU

Diese Option gibt einen Prozessor an, für den optimiert werden soll. Bei Verwendung in Verbindung mit der Option -march werden nur Anweisungen des durch die Option -march angegebenen Prozessors generiert. Gültige CPU-Werte sind identisch mit der Prozessorliste von -march=CPU.

-msse2avx

Diese Option gibt an, dass der Assembler SSE-Anweisungen mit dem VEX-Präfix kodieren soll.

-muse-unaligned-vector-move

Diese Option gibt an, dass der Assembler ausgerichtete Vektorbewegungen als nicht ausgerichtete Vektorbewegungen kodieren soll.

-msse-check=none
-msse-check=warning
-msse-check=error

Diese Optionen steuern, ob der Assembler SSE-Anweisungen prüfen soll. -msse-check=none bewirkt, dass der Assembler die SSE-Anweisungen nicht überprüft, was die Standardeinstellung ist. -msse-check=warning veranlasst den Assembler, für jede SSE-Anweisung eine Warnung auszugeben. -msse-check=error führt dazu, dass der Assembler für jede SSE-Anweisung einen Fehler ausgibt.

-mavxscalar=128
-mavxscalar=256

Diese Optionen steuern, wie der Assembler skalare AVX-Anweisungen kodieren soll. -mavxscalar=128 kodiert skalare AVX-Anweisungen mit einer Vektorlänge von 128 Bit, was die Standardeinstellung ist. -mavxscalar=256 kodiert skalare AVX-Anweisungen mit einer Vektorlänge von 256 Bit. WARNUNG: Verwenden Sie dies nicht für Produktionscode – aufgrund von CPU-Fehlern funktioniert der resultierende Code möglicherweise auf bestimmten Modellen nicht.

-mvexwig=0
-mvexwig=1

Diese Optionen steuern, wie der Assembler VEX.W-ignorierte (WIG) VEX-Anweisungen kodieren soll. -mvexwig=0 kodiert WIG VEX-Anweisungen mit vex.w=0, was die Standardeinstellung ist. -mvexwig=1 kodiert WIG EVEX-Anweisungen mit vex.w=1. WARNUNG: Verwenden Sie dies nicht für Produktionscode – aufgrund von CPU-Fehlern ist der resultierende Code möglicherweise nicht möglich Arbeiten an bestimmten Modellen.

-mevexlig=128
-mevexlig=256
-mevexlig=512

Diese Optionen steuern, wie der Assembler längenignorierte (LIG) EVEX-Anweisungen kodieren soll. -mevexlig=128 kodiert LIG EVEX-Anweisungen mit einer Vektorlänge von 128 Bit, was die Standardeinstellung ist. -mevexlig=256 und -mevexlig=512 kodieren LIG EVEX-Anweisungen mit 256 Bit bzw. 512 Bit Vektorlänge .

-mevexwig=0
-mevexwig=1

Diese Optionen steuern, wie der Assembler w-ignorierte (WIG) EVEX-Anweisungen kodieren soll. -mevexwig=0 kodiert WIG EVEX-Anweisungen mit evex.w=0, was die Standardeinstellung ist. -mevexwig=1 kodiert WIG EVEX-Anweisungen mit evex.w=1.

-mmnemonic=att
-mmnemonic=intel

Diese Option gibt die Anweisungsmnemonik für übereinstimmende Anweisungen an. Die Anweisungen .att_mnemonic und .intel_mnemonic haben Vorrang.

-msyntax=att
-msyntax=intel

Diese Option legt die Anweisungssyntax bei der Verarbeitung von Anweisungen fest. Die Anweisungen .att_syntax und .intel_syntax haben Vorrang.

-mnaked-reg

Diese Option gibt an, dass Register kein %-Präfix benötigen. Die Anweisungen .att_syntax und .intel_syntax haben Vorrang.

-madd-bnd-prefix

Diese Option zwingt den Assembler, allen Zweigen ein BND-Präfix hinzuzufügen, auch wenn ein solches Präfix nicht explizit im Quellcode angegeben wurde.

-mno-shared

Auf ELF-Zielen optimiert der Assembler normalerweise Nicht-PLT-Verschiebungen anhand definierter, nicht schwacher globaler Verzweigungsziele mit Standardsichtbarkeit. Die Option -mshared weist den Assembler an, Code zu generieren, der in eine gemeinsam genutzte Bibliothek verschoben werden kann, in der alle nicht schwachen globalen Verzweigungsziele mit Standardsichtbarkeit vorab gelöscht werden können. Der resultierende Code ist etwas größer. Diese Option betrifft nur die Behandlung von Verzweigungsanweisungen.

-mbig-obj

Auf PE/COFF-Zielen erzwingt diese Option die Verwendung des Big-Object-Dateiformats, das mehr als 32768 Abschnitte zulässt.

-momit-lock-prefix=no
-momit-lock-prefix=yes

Diese Optionen steuern, wie der Assembler das Sperrpräfix kodieren soll. Diese Option ist als Workaround für Prozessoren gedacht, die aufgrund des Sperrpräfixes ausfallen. Diese Option kann nur sicher mit Single-Core- und Single-Thread-Computern verwendet werden. -momit-lock-prefix=yes lässt alle Sperrpräfixe weg. -momit-lock-prefix=no kodiert das Sperrpräfix wie gewohnt, was die Standardeinstellung ist.

-mfence-as-lock-add=no
-mfence-as-lock-add=yes

Diese Optionen steuern, wie der Assembler lfence, mfence und sfence kodieren soll. -mfence-as-lock-add=yes kodiert lfence, mfence und sfence als lock addl $0x0, (%rsp ) im 64-Bit-Modus und lock addl $0x0, (%esp) im 32-Bit-Modus. -mfence-as-lock-add=no kodiert lfence, mfence und sfence wie gewohnt, was die Standardeinstellung ist.

-mrelax-relocations=no
-mrelax-relocations=yes

Diese Optionen steuern, ob der Assembler Relax-Verschiebungen generieren soll, R_386_GOT32X im 32-Bit-Modus oder R_X86_64_GOTPCRELX und R_X86_64_REX_GOTPCRELX im 64-Bit-Modus. -mrelax-relocations=yes generiert entspannte Umzüge. -mrelax-relocations=no generiert keine Entspannungsumzüge. Der Standardwert kann durch eine Konfigurationsoption --enable-x86-relax-relocations gesteuert werden.

-malign-branch-boundary=NUM

Diese Option steuert, wie der Assembler Zweige mit Segmentpräfixen oder NOP ausrichten soll. NUM muss eine Potenz von 2 sein. Sie sollte 0 oder nicht weniger als 16 sein. Zweige werden innerhalb der NUM-Bytegrenze ausgerichtet. -malign-branch-boundary=0, die Standardeinstellung, richtet Zweige nicht aus.

-malign-branch=TYPE[+TYPE...]

Diese Option gibt die Arten der auszurichtenden Zweige an. TYPE ist eine Kombination aus jcc, das bedingte Sprünge ausrichtet, fusioned, das fusionierte bedingte Sprünge ausrichtet, und jmp, das richtet bedingungslose Sprünge aus, call, das Aufrufe ausrichtet, ret, das rets ausrichtet, indirect, das indirekte Sprünge und Aufrufe ausrichtet. Der Standardwert ist -malign-branch=jcc+fused+jmp.

-malign-branch-prefix-size=NUM

Diese Option gibt die maximale Anzahl von Präfixen für eine Anweisung zum Ausrichten von Zweigen an. NUM sollte zwischen 0 und 5 liegen. Der Standardwert für NUM ist 5.

-mbranches-within-32B-boundaries

Diese Option richtet bedingte Sprünge, fusionierte bedingte Sprünge und bedingungslose Sprünge innerhalb der 32-Byte-Grenze mit bis zu 5 Segmentpräfixen in einem Befehl aus. Es entspricht -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5<. Standardmäßig werden Zweige nicht ausgerichtet.

-mlfence-after-load=no
-mlfence-after-load=yes

Diese Optionen steuern, ob der Assembler nach Ladeanweisungen einen Zaun generieren soll. -mlfence-after-load=yes wird lfence generieren. -mlfence-after-load=no generiert kein Lence, was die Standardeinstellung ist.

-mlfence-before-indirect-branch=none
-mlfence-before-indirect-branch=all
-mlfence-before-indirect-branch=register
-mlfence-before-indirect-branch=memory

Diese Optionen steuern, ob der Assembler lfence vor indirekten Near-Branch-Anweisungen generieren soll. -mlfence-before-indirect-branch=all generiert einen Lence vor der indirekten Nahverzweigung über das Register und gibt eine Warnung vor der indirekten Nahverzweigung über den Speicher aus. Es setzt auch implizit -mlfence-before-ret=shl, wenn es kein explizites -mlfence-before-ret= gibt. -mlfence-before-indirect-branch=register generiert einen Lence vor der indirekten Nahverzweigung über das Register. -mlfence-before-indirect-branch=memory gibt eine Warnung aus, bevor indirekt über den Speicher verzweigt wird. -mlfence-before-indirect-branch=none generiert keine Lizenz und gibt keine Warnung aus, was die Standardeinstellung ist. Beachten Sie, dass die Lence nicht vor der indirekten Nahverzweigung über das Register mit -mlfence-after-load=yes generiert wird, da die Lence nach dem Laden des Verzweigungszielregisters generiert wird.

-mlfence-before-ret=none
-mlfence-before-ret=shl
-mlfence-before-ret=or
-mlfence-before-ret=yes
-mlfence-before-ret=not

Diese Optionen steuern, ob der Assembler lfence vor ret generieren soll. -mlfence-before-ret=or generiert eine Generierungs- oder Anweisung mit lfence. -mlfence-before-ret=shl/yes generiert eine SHL-Anweisung mit lfence. -mlfence-before-ret=not generiert keine Anweisungen mit lfence. -mlfence-before-ret=none generiert kein Lfence, was die Standardeinstellung ist.

-mx86-used-note=no
-mx86-used-note=yes

Diese Optionen steuern, ob der Assembler GNU-Eigenschaftsnotizen für GNU_PROPERTY_X86_ISA_1_USED und GNU_PROPERTY_X86_FEATURE_2_USED generieren soll. Der Standardwert kann über die Konfigurationsoption --enable-x86-used-note gesteuert werden.

-mevexrcig=rne
-mevexrcig=rd
-mevexrcig=ru
-mevexrcig=rz

Diese Optionen steuern, wie der Assembler reine SAE-EVEX-Anweisungen kodieren soll. -mevexrcig=rne kodiert RC-Bits des EVEX-Befehls mit 00, was die Standardeinstellung ist. -mevexrcig=rd, -mevexrcig=ru und -mevexrcig=rz kodiert ausschließlich SAE-EVEX-Anweisungen mit 01, 10 bzw. 11 RC-Bits.

-mamd64
-mintel64

Diese Option gibt an, dass der Assembler im 64-Bit-Modus nur AMD64 oder Intel64 ISA akzeptieren soll. Standardmäßig werden allgemeine, nur Intel64- und AMD64-ISAs akzeptiert.

-O0 | -O | -O1 | -O2 | -Os

Optimieren Sie die Befehlskodierung mit kleinerer Befehlsgröße. -O und -O1 kodieren 64-Bit-Registerladeanweisungen mit 64-Bit-Immediate als 32-Bit-Registerladeanweisungen mit 31-Bit- oder 32-Bit-Immediate, kodieren 64 -Bit-Registerlöschanweisungen mit 32-Bit-Registerlöschanweisungen, kodieren 256-Bit/512-Bit-VEX/EVEX-Vektorregisterlöschanweisungen mit 128-Bit-VEX-Vektorregisterlöschanweisungen, kodieren 128-Bit/256-Bit-EVEX-Vektorregisterladung /store-Anweisungen mit VEX-Vektorregister-Lade-/Speicheranweisungen und kodieren Sie 128-Bit/256-Bit-EVEX-gepackte Ganzzahl-Logikanweisungen mit 128-Bit/256-Bit-VEX-gepackter Ganzzahl-Logik. -O2 umfasst -O1-Optimierung und kodiert 256-Bit/512-Bit-EVEX-Vektorregister-Löschanweisungen mit 128-Bit-EVEX-Vektorregister-Löschanweisungen. Im 64-Bit-Modus werden bei VEX-codierten Anweisungen mit kommutativen Quelloperanden auch die Quelloperanden vertauscht, wenn dies die Verwendung der 2-Byte-VEX-Präfixform anstelle der 3-Byte-Form ermöglicht. Bestimmte Formen von AND sowie OR mit zweimaliger Angabe desselben (Register-)Operanden werden ebenfalls in TEST geändert. -Os umfasst -O2-Optimierung und kodiert 16-Bit-, 32-Bit- und 64-Bit-Registertests mit Sofort sowie 8-Bit-Registertest mit Sofort. -O0 schaltet diese Optimierung aus.

Die folgenden Optionen sind verfügbar, wenn sie für die Ubicom IP2K-Serie konfiguriert sind.

-mip2022ext

Gibt an, dass die erweiterten IP2022-Anweisungen zulässig sind.

-mip2022

Stellt das Standardverhalten wieder her, das die zulässigen Anweisungen auf die grundlegenden IP2022-Anweisungen beschränkt.

Die folgenden Optionen sind verfügbar, wenn sie für die Renesas M32C- und M16C-Prozessoren konfiguriert sind.

-m32c

Bauen Sie die M32C-Anweisungen zusammen.

-m16c

Assemble M16C-Anweisungen (Standardeinstellung).

-relax

Aktivieren Sie die Unterstützung für Linkzeitlockerungen.

-h-tick-hex

Unterstützt Hex-Konstanten im H'00-Stil zusätzlich zum 0x00-Stil.

Die folgenden Optionen sind verfügbar, wenn sie für die Renesas M32R-Serie (ehemals Mitsubishi M32R) konfiguriert sind.

--m32rx

Geben Sie an, welcher Prozessor der M32R-Familie das Ziel ist. Der Standardwert ist normalerweise der M32R, aber diese Option ändert ihn in den M32RX.

--warn-explicit-parallel-conflicts or --Wp

Erstellen Sie Warnmeldungen, wenn fragwürdige Parallelkonstrukte auftreten.

--no-warn-explicit-parallel-conflicts or --Wnp

Geben Sie keine Warnmeldungen aus, wenn fragwürdige parallele Konstrukte gefunden werden.

Die folgenden Optionen sind verfügbar, wenn sie für die Motorola 68000-Serie konfiguriert sind.

-l

Kürzen Sie Verweise auf undefinierte Symbole auf ein Wort statt auf zwei.

-m68000 | -m68008 | -m68010 | -m68020 | -m68030
| -m68040 | -m68060 | -m68302 | -m68331 | -m68332
| -m68333 | -m68340 | -mcpu32 | -m5200

Geben Sie an, welcher Prozessor der 68000-Familie das Ziel ist. Der Standardwert ist normalerweise 68020, dies kann jedoch zum Zeitpunkt der Konfiguration geändert werden.

-m68881 | -m68882 | -mno-68881 | -mno-68882

Der Zielcomputer verfügt über einen Gleitkomma-Coprozessor (oder auch nicht). Standardmäßig wird für 68020, 68030 und cpu32 ein Coprozessor angenommen. Obwohl der Basis-68000 nicht mit dem 68881 kompatibel ist, kann eine Kombination aus beiden angegeben werden, da die Emulation der Coprozessor-Anweisungen mit dem Hauptprozessor möglich ist.

-m68851 | -mno-68851

Der Zielcomputer verfügt über einen Coprozessor für die Speicherverwaltungseinheit (oder nicht). Standardmäßig wird eine MMU für 68020 und höher angenommen.

Die folgenden Optionen sind verfügbar, wenn sie für einen Altera Nios II-Prozessor konfiguriert ist.

-relax-section

Ersetzen Sie identifizierte Zweige außerhalb des Bereichs nach Möglichkeit durch PC-relative jmp-Sequenzen. Die generierten Codesequenzen sind für die Verwendung in positionsunabhängigem Code geeignet, aufgrund der Länge der Sequenzen gibt es jedoch eine praktische Grenze für den erweiterten Verzweigungsbereich. Diese Option ist die Standardeinstellung.

-relax-all

Ersetzen Sie Verzweigungsanweisungen, von denen nicht festgestellt werden kann, dass sie im Bereich liegen, und alle Aufrufanweisungen durch jmp- bzw. callr-Sequenzen. Diese Option generiert absolute Verschiebungen gegenüber den Zielsymbolen und ist nicht für positionsunabhängigen Code geeignet.

-no-relax

Ersetzen Sie keine Abzweigungen oder Anrufe.

-EB

Generieren Sie eine Big-Endian-Ausgabe.

-EL

Generieren Sie eine Little-Endian-Ausgabe. Dies ist die Standardeinstellung.

-march=architecture

Diese Option gibt die Zielarchitektur an. Der Assembler gibt eine Fehlermeldung aus, wenn versucht wird, eine Anweisung zu assemblieren, die auf der Zielarchitektur nicht ausgeführt werden kann. Die folgenden Architekturnamen werden erkannt: r1, r2. Der Standardwert ist r1.

Die folgenden Optionen sind verfügbar, wenn für einen PRU-Prozessor konfiguriert ist.

-mlink-relax

Gehen Sie davon aus, dass LD LDI32-Anweisungen optimieren würde, indem es die oberen 16 Bits des Ausdrucks überprüft. Wenn sie alle Nullen wären, würde LD den LDI32-Befehl auf einen einzelnen LDI kürzen. In einem solchen Fall gibt as DIFF-Verschiebungen für Diff-Ausdrücke aus.

-mno-link-relax

Gehen Sie davon aus, dass LD die LDI32-Anweisungen nicht optimieren würde. Infolgedessen werden DIFF-Verschiebungen nicht ausgegeben.

-mno-warn-regname-label

Geben Sie keine Warnung aus, wenn ein Labelname mit einem Registernamen übereinstimmt. Normalerweise möchten Assembler-Programmierer, dass diese Warnung ausgegeben wird. C-Compiler möchten dies möglicherweise deaktivieren.

Die folgenden Optionen sind verfügbar, wenn für einen MIPS-Prozessor konfiguriert ist.

-G num

Diese Option legt die größte Größe eines Objekts fest, auf das implizit mit dem gp-Register verwiesen werden kann. Es wird nur für Ziele akzeptiert, die das ECOFF-Format verwenden, z. B. eine DECstation, auf der Ultrix ausgeführt wird. Der Standardwert ist 8.

-EB

Generieren Sie eine Ausgabe im Big-Endian-Format.

-EL

Generieren Sie eine Ausgabe im Little-Endian-Format.

-mips1
-mips2
-mips3
-mips4
-mips5
-mips32
-mips32r2
-mips32r3
-mips32r5
-mips32r6
-mips64
-mips64r2
-mips64r3
-mips64r5
-mips64r6

Generieren Sie Code für eine bestimmte Ebene der MIPS-Befehlssatzarchitektur. -mips1 ist ein Alias für -march=r3000, -mips2 ist ein Alias für -march=r6000, -mips3 ist ein Alias für -march=r4000 und -mips4 ist ein Alias für -march=r8000. -mips5, -mips32, -mips32r2, -mips32r3, -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5, und -mips64r6 entsprechen generischem MIPS V, MIPS32, MIPS32 Release 2, MIPS32 Release 3, MIPS32 Release 5, MIPS32 Release 6, MIPS64, MIPS64 Release 2, MIPS64 Release 3, MIPS64 Release 5 und MIPS64 Release 6 ISA-Prozessoren.

-march=cpu

Generieren Sie Code für eine bestimmte MIPS-CPU.

-mtune=cpu

Planen und optimieren Sie für eine bestimmte MIPS-CPU.

-mfix7000
-mno-fix7000

Bewirken, dass Nops eingefügt werden, wenn das Lesen des Zielregisters eines mfhi- oder mflo-Befehls in den folgenden beiden Befehlen erfolgt.

-mfix-rm7000
-mno-fix-rm7000

Bewirken, dass Nops eingefügt werden, wenn auf eine dmult- oder dmultu-Anweisung eine Ladeanweisung folgt.

-mfix-r5900
-mno-fix-r5900

Versuchen Sie nicht, die vorhergehende Anweisung im Verzögerungsschlitz einer Verzweigungsanweisung einzuplanen, die am Ende einer kurzen Schleife von sechs oder weniger Anweisungen steht, und planen Sie stattdessen immer eine nop-Anweisung dort ein. Der Short-Loop-Fehler führt unter bestimmten Bedingungen dazu, dass Schleifen aufgrund eines Hardwarefehlers im R5900-Chip nur ein- oder zweimal ausgeführt werden.

-mdebug
-no-mdebug

Bewirkt, dass die Debugging-Ausgabe im Stabs-Stil in einen .mdebug-Abschnitt im ECOFF-Stil und nicht in die Standard-ELF-.stabs-Abschnitte verschoben wird.

-mpdr
-mno-pdr

Steuern Sie die Generierung von .pdr-Abschnitten.

-mgp32
-mfp32

Die Registergrößen werden normalerweise aus ISA und ABI abgeleitet, aber diese Flags erzwingen, dass eine bestimmte Gruppe von Registern immer als 32 Bit breit behandelt wird. -mgp32 steuert die Größe von Allzweckregistern und -mfp32 steuert die Größe von Gleitkommaregistern.

-mgp64
-mfp64

Die Registergrößen werden normalerweise aus ISA und ABI abgeleitet, aber diese Flags erzwingen, dass eine bestimmte Gruppe von Registern immer als 64 Bit breit behandelt wird. -mgp64 steuert die Größe von Allzweckregistern und -mfp64 steuert die Größe von Gleitkommaregistern.

-mfpxx

Die Registergrößen werden normalerweise aus ISA und ABI abgeleitet, aber die Verwendung dieses Flags in Kombination mit -mabi=32 ermöglicht eine ABI-Variante, die korrekt mit Gleitkommaregistern funktioniert, die 32 oder 64 Bit breit sind .

-modd-spreg
-mno-odd-spreg

Aktivieren Sie die Verwendung von Gleitkommaoperationen für ungeradzahlige Register mit einfacher Genauigkeit, sofern dies von der ISA unterstützt wird. -mfpxx impliziert -mno-odd-spreg, andernfalls ist die Standardeinstellung -modd-spreg.

-mips16
-no-mips16

Generieren Sie Code für den MIPS 16-Prozessor. Dies entspricht dem Einfügen von .module mips16 am Anfang der Assemblydatei. -no-mips16 deaktiviert diese Option.

-mmips16e2
-mno-mips16e2

Aktivieren Sie die Verwendung von MIPS16e2-Anweisungen im MIPS16-Modus. Dies entspricht dem Einfügen von .module mips16e2 am Anfang der Assemblydatei. -mno-mips16e2 deaktiviert diese Option.

-mmicromips
-mno-micromips

Generieren Sie Code für den microMIPS-Prozessor. Dies entspricht dem Einfügen von .module micromips am Anfang der Assemblydatei. -mno-micromips deaktiviert diese Option. Dies entspricht dem Einfügen von .module nomicromips am Anfang der Assemblydatei.

-msmartmips
-mno-smartmips

Aktiviert die SmartMIPS-Erweiterung des MIPS32-Befehlssatzes. Dies entspricht dem Einfügen von .module smartmips am Anfang der Assemblydatei. -mno-smartmips deaktiviert diese Option.

-mips3d
-no-mips3d

Generieren Sie Code für die anwendungsspezifische MIPS-3D-Erweiterung. Dadurch wird der Assembler angewiesen, MIPS-3D-Anweisungen zu akzeptieren. -no-mips3d deaktiviert diese Option.

-mdmx
-no-mdmx

Generieren Sie Code für die anwendungsspezifische MDMX-Erweiterung. Dadurch wird der Assembler angewiesen, MDMX-Anweisungen zu akzeptieren. -no-mdmx deaktiviert diese Option.

-mdsp
-mno-dsp

Generieren Sie Code für die anwendungsspezifische Erweiterung DSP Release 1. Dadurch wird der Assembler angewiesen, DSP Release 1-Anweisungen zu akzeptieren. -mno-dsp deaktiviert diese Option.

-mdspr2
-mno-dspr2

Generieren Sie Code für die anwendungsspezifische Erweiterung DSP Release 2. Diese Option impliziert -mdsp. Dadurch wird der Assembler angewiesen, DSP Release 2-Anweisungen zu akzeptieren. -mno-dspr2 deaktiviert diese Option.

-mdspr3
-mno-dspr3

Generieren Sie Code für die anwendungsspezifische Erweiterung DSP Release 3. Diese Option impliziert -mdsp und -mdspr2. Dadurch wird der Assembler angewiesen, DSP Release 3-Anweisungen zu akzeptieren. -mno-dspr3 deaktiviert diese Option.

-mmsa
-mno-msa

Generieren Sie Code für die MIPS SIMD Architecture Extension. Dadurch wird der Assembler angewiesen, MSA-Anweisungen zu akzeptieren. -mno-msa deaktiviert diese Option.

-mxpa
-mno-xpa

Generieren Sie Code für die MIPS eXtended Physical Address (XPA)-Erweiterung. Dadurch wird der Assembler angewiesen, XPA-Anweisungen zu akzeptieren. -mno-xpa deaktiviert diese Option.

-mmt
-mno-mt

Generieren Sie Code für die MT-anwendungsspezifische Erweiterung. Dadurch wird der Assembler angewiesen, MT-Anweisungen zu akzeptieren. -mno-mt deaktiviert diese Option.

-mmcu
-mno-mcu

Generieren Sie Code für die MCU-anwendungsspezifische Erweiterung. Dadurch wird der Assembler angewiesen, MCU-Anweisungen zu akzeptieren. -mno-mcu deaktiviert diese Option.

-mcrc
-mno-crc

Generieren Sie Code für die anwendungsspezifische Erweiterung MIPS Cyclic Redundancy Check (CRC). Dadurch wird der Assembler angewiesen, CRC-Anweisungen zu akzeptieren. -mno-crc deaktiviert diese Option.

-mginv
-mno-ginv

Generieren Sie Code für die anwendungsspezifische Erweiterung Global INValidate (GINV). Dadurch wird der Assembler angewiesen, GINV-Anweisungen zu akzeptieren. -mno-ginv deaktiviert diese Option.

-mloongson-mmi
-mno-loongson-mmi

Generieren Sie Code für die anwendungsspezifische Erweiterung Loongson MultiMedia extensions Instructions (MMI). Dadurch wird der Assembler angewiesen, MMI-Anweisungen zu akzeptieren. -mno-loongson-mmi deaktiviert diese Option.

-mloongson-cam
-mno-loongson-cam

Generieren Sie Code für die Loongson Content Address Memory (CAM)-Anweisungen. Dadurch wird der Assembler angewiesen, Loongson CAM-Anweisungen zu akzeptieren. -mno-loongson-cam deaktiviert diese Option.

-mloongson-ext
-mno-loongson-ext

Generieren Sie Code für die Loongson EXTensions (EXT)-Anweisungen. Dadurch wird der Assembler angewiesen, Loongson EXT-Anweisungen zu akzeptieren. -mno-loongson-ext deaktiviert diese Option.

-mloongson-ext2
-mno-loongson-ext2

Generieren Sie Code für die Loongson EXTensions R2 (EXT2)-Anweisungen. Diese Option impliziert -mloongson-ext. Dadurch wird der Assembler angewiesen, Loongson EXT2-Anweisungen zu akzeptieren. -mno-loongson-ext2 deaktiviert diese Option.

-minsn32
-mno-insn32

Verwenden Sie beim Generieren von Code für den microMIPS-Prozessor nur 32-Bit-Befehlskodierungen. Diese Option verhindert die Verwendung von 16-Bit-Befehlen. Dies entspricht dem Einfügen von .set insn32 am Anfang der Assemblydatei. -mno-insn32 deaktiviert diese Option. Dies entspricht dem Einfügen von .set noinsn32 am Anfang der Assemblydatei. Standardmäßig ist -mno-insn32 ausgewählt, sodass alle Anweisungen verwendet werden können.

--construct-floats
--no-construct-floats

Die Option --no-construct-floats deaktiviert die Konstruktion von Gleitkommakonstanten mit doppelter Breite, indem die beiden Hälften des Werts in die beiden Gleitkommaregister mit einfacher Breite geladen werden, aus denen das Register mit doppelter Breite besteht. Standardmäßig ist --construct-floats ausgewählt, was die Konstruktion dieser Gleitkommakonstanten ermöglicht.

--relax-branch
--no-relax-branch

Die Option --relax-branch ermöglicht die Entspannung von Zweigen außerhalb des Bereichs. Standardmäßig ist --no-relax-branch ausgewählt, was dazu führt, dass alle Zweige außerhalb des Bereichs einen Fehler erzeugen.

-mignore-branch-isa
-mno-ignore-branch-isa

Verzweigungsprüfungen auf ungültige Übergänge zwischen ISA-Modi ignorieren. Die Semantik von Zweigen sieht keinen ISA-Moduswechsel vor, daher muss in den meisten Fällen der ISA-Modus, für den ein Zweig codiert wurde, mit dem ISA-Modus des Zieletiketts des Zweigs identisch sein. Deshalb hat GAS Prüfungen implementiert, die in der Zweigbaugruppe überprüfen, ob die beiden ISA-Modi übereinstimmen. -mignore-branch-isa deaktiviert diese Prüfungen. Standardmäßig ist -mno-ignore-branch-isa ausgewählt, was dazu führt, dass jeder ungültige Zweig, der einen Übergang zwischen ISA-Modi erfordert, einen Fehler erzeugt.

-mnan=encoding

Wählen Sie zwischen dem IEEE 754-2008 (-mnan=2008) oder dem Legacy-NaN-Kodierungsformat (-mnan=legacy). Letzteres ist die Standardeinstellung.

--emulation=name

Diese Option wurde früher zum Umschalten zwischen ELF- und ECOFF-Ausgabe auf Zielen wie IRIX 5 verwendet, die beide unterstützten. Die MIPS ECOFF-Unterstützung wurde in GAS 2.24 entfernt, sodass die Option jetzt nur noch wenig Sinn macht. Aus Gründen der Abwärtskompatibilität wird es beibehalten. Die verfügbaren Konfigurationsnamen sind: mipself, mipslelf und mipsbelf. Die Auswahl von mipself hat jetzt keine Auswirkung, da die Ausgabe immer ELF ist. mipslelf und mipsbelf wählen die Little- bzw. Big-Endian-Ausgabe aus, aber -EL und -EB sind jetzt die stattdessen bevorzugte Optionen.

-nocpp

as ignoriert diese Option. Es wird aus Gründen der Kompatibilität mit den nativen Tools akzeptiert.

--trap
--no-trap
--break
--no-break

Steuern Sie, wie mit Multiplikationsüberlauf und Division durch Null umgegangen wird. --trap oder --no-break (die Synonyme sind) nehmen eine Trap-Ausnahme (und funktionieren nur für Instruction Set Architecture Level 2 und höher); --break oder --no-trap (ebenfalls Synonyme und die Standardeinstellung) lösen eine Break-Ausnahme aus.

-n

Wenn diese Option verwendet wird, gibt as jedes Mal eine Warnung aus, wenn es eine nop-Anweisung aus einem Makro generiert.

Die folgenden Optionen sind verfügbar, wenn für einen LoongArch-Prozessor konfiguriert ist.

-fpic
-fPIC

Generieren Sie ortsunabhängigen Code

-fno-pic

Generieren Sie keinen positionsunabhängigen Code (Standard)

Die folgenden Optionen sind verfügbar, wenn für einen Metaprozessor konfiguriert ist.

"-mcpu=metac11"

Generieren Sie Code für Meta 1.1.

"-mcpu=metac12"

Generieren Sie Code für Meta 1.2.

"-mcpu=metac21"

Generieren Sie Code für Meta 2.1.

"-mfpu=metac21"

Code darf die FPU-Hardware von Meta 2.1 verwenden.

Die Dokumentation der MMIX-spezifischen Optionen finden Sie auf den Infoseiten.

Die folgenden Optionen sind verfügbar, wenn für einen NDS32-Prozessor konfiguriert ist.

"-O1"

Optimieren Sie die Leistung.

"-Os"

Platzsparend optimieren.

"-EL"

Erzeugen Sie eine Little-Endian-Datenausgabe.

"-EB"

Erzeugen Sie eine Little-Endian-Datenausgabe.

"-mpic"

PIC generieren.

"-mno-fp-as-gp-relax"

Unterdrücken Sie die fp-as-gp-Relaxierung für diese Datei.

"-mb2bb-relax"

Back-to-Back-Branchenoptimierung.

"-mno-all-relax"

Unterdrücken Sie jegliche Entspannung für diese Datei.

"-march=<arch name>"

Assemblieren Sie für die Architektur , die v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s sein könnte.

"-mbaseline=<baseline>"

Zusammenstellen für die Baseline , die v2, v3, v3m sein könnte.

"-mfpu-freg=FREG"

Geben Sie eine FPU-Konfiguration an.

"0 8 SP / 4 DP registers"
"1 16 SP / 8 DP registers"
"2 32 SP / 16 DP registers"
"3 32 SP / 32 DP registers"
"-mabi=abi"

Geben Sie eine Abi-Version an. könnte v1, v2, v2fp, v2fpp sein.

"-m[no-]mac"

Unterstützung für Multiplikationsanweisungen aktivieren/deaktivieren.

"-m[no-]div"

Unterstützung für Divide-Anweisungen aktivieren/deaktivieren.

"-m[no-]16bit-ext"

16-Bit-Erweiterung aktivieren/deaktivieren

"-m[no-]dx-regs"

d0/d1-Register aktivieren/deaktivieren

"-m[no-]perf-ext"

Leistungserweiterung aktivieren/deaktivieren

"-m[no-]perf2-ext"

Leistungserweiterung 2 aktivieren/deaktivieren

"-m[no-]string-ext"

String-Erweiterung aktivieren/deaktivieren

"-m[no-]reduced-regs"

Option „Reduzierte Registerkonfiguration“ (GPR16) aktivieren/deaktivieren

"-m[no-]audio-isa-ext"

Aktivieren/deaktivieren Sie die AUDIO ISA-Erweiterung

"-m[no-]fpu-sp-ext"

FPU SP-Erweiterung aktivieren/deaktivieren

"-m[no-]fpu-dp-ext"

FPU-DP-Erweiterung aktivieren/deaktivieren

"-m[no-]fpu-fma"

FPU-Fused-Multiply-Add-Anweisungen aktivieren/deaktivieren

"-mall-ext"

Aktivieren Sie die Unterstützung aller Erweiterungen und Anweisungen

Die folgenden Optionen sind verfügbar, wenn für einen PowerPC-Prozessor konfiguriert ist.

-a32

Generieren Sie ELF32 oder XCOFF32.

-a64

Generieren Sie ELF64 oder XCOFF64.

-K PIC

Legen Sie EF_PPC_RELOCATABLE_LIB in ELF-Flags fest.

-mpwrx | -mpwr2

Generieren Sie Code für POWER/2 (RIOS2).

-mpwr

Code für POWER (RIOS1) generieren

-m601

Generieren Sie Code für PowerPC 601.

-mppc, -mppc32, -m603, -m604

Generieren Sie Code für PowerPC 603/604.

-m403, -m405

Generieren Sie Code für PowerPC 403/405.

-m440

Generieren Sie Code für PowerPC 440. BookE und einige 405-Anweisungen.

-m464

Generieren Sie Code für PowerPC 464.

-m476

Generieren Sie Code für PowerPC 476.

-m7400, -m7410, -m7450, -m7455

Generieren Sie Code für PowerPC 7400/7410/7450/7455.

-m750cl, -mgekko, -mbroadway

Generieren Sie Code für PowerPC 750CL/Gekko/Broadway.

-m821, -m850, -m860

Generieren Sie Code für PowerPC 821/850/860.

-mppc64, -m620

Generieren Sie Code für PowerPC 620/625/630.

-me200z2, -me200z4

Generieren Sie Code für e200-Varianten, e200z2 mit LSP, e200z4 mit SPE.

-me300

Generieren Sie Code für die PowerPC e300-Familie.

-me500, -me500x2

Generieren Sie Code für den Motorola e500-Kernkomplex.

-me500mc

Generieren Sie Code für den Freescale e500mc-Kernkomplex.

-me500mc64

Generieren Sie Code für den Freescale e500mc64-Kernkomplex.

-me5500

Generieren Sie Code für den Freescale e5500-Kernkomplex.

-me6500

Generieren Sie Code für den Freescale e6500-Kernkomplex.

-mlsp

Aktivieren Sie LSP-Anweisungen. (Deaktiviert SPE und SPE2.)

-mspe

Generieren Sie Code für Motorola SPE-Anweisungen. (Deaktiviert LSP.)

-mspe2

Generieren Sie Code für Freescale SPE2-Anweisungen. (Deaktiviert LSP.)

-mtitan

Generieren Sie Code für den AppliedMicro Titan-Kernkomplex.

-mppc64bridge

Generieren Sie Code für PowerPC 64, einschließlich Bridge-Insns.

-mbooke

Generieren Sie Code für 32-Bit-BookE.

-ma2

Generieren Sie Code für die A2-Architektur.

-maltivec

Generieren Sie Code für Prozessoren mit AltiVec-Anweisungen.

-mvle

Generieren Sie Code für Freescale PowerPC VLE-Anweisungen.

-mvsx

Generieren Sie Code für Prozessoren mit Vector-Scalar (VSX)-Anweisungen.

-mhtm

Generieren Sie Code für Prozessoren mit Hardware-Transaktionsspeicheranweisungen.

-mpower4, -mpwr4

Generieren Sie Code für die Power4-Architektur.

-mpower5, -mpwr5, -mpwr5x

Generieren Sie Code für die Power5-Architektur.

-mpower6, -mpwr6

Generieren Sie Code für die Power6-Architektur.

-mpower7, -mpwr7

Generieren Sie Code für die Power7-Architektur.

-mpower8, -mpwr8

Generieren Sie Code für die Power8-Architektur.

-mpower9, -mpwr9

Generieren Sie Code für die Power9-Architektur.

-mpower10, -mpwr10

Generieren Sie Code für die Power10-Architektur.

-mfuture

Generieren Sie Code für die „zukünftige“ Architektur.

-mcell
-mcell

Generieren Sie Code für die Cell Broadband Engine-Architektur.

-mcom

Generieren Sie allgemeine Code-Anweisungen für Power/PowerPC.

-many

Generieren Sie Code für jede Architektur (PWR/PWRX/PPC).

-mregnames

Erlauben Sie symbolische Namen für Register.

-mno-regnames

Erlauben Sie keine symbolischen Namen für Register.

-mrelocatable

Unterstützung für die GCC-Option -mrelocatable.

-mrelocatable-lib

Unterstützung für die GCC-Option -mrelocatable-lib.

-memb

Setzen Sie das PPC_EMB-Bit in den ELF-Flags.

-mlittle, -mlittle-endian, -le

Generieren Sie Code für eine Little-Endian-Maschine.

-mbig, -mbig-endian, -be

Generieren Sie Code für eine Big-Endian-Maschine.

-msolaris

Generieren Sie Code für Solaris.

-mno-solaris

Generieren Sie keinen Code für Solaris.

-nops=count

Wenn eine Ausrichtungsanweisung mehr als count Nops einfügt, setzen Sie einen Zweig an den Anfang, um die Ausführung der Nops zu überspringen.

Die folgenden Optionen sind verfügbar, wenn für einen RISC-V-Prozessor konfiguriert ist.

-fpic
-fPIC

Generieren Sie ortsunabhängigen Code

-fno-pic

Generieren Sie keinen positionsunabhängigen Code (Standard)

-march=ISA

Wählen Sie die Basis-ISA aus, wie von ISA angegeben. Zum Beispiel -march=rv32ima. Wenn diese Option und die Architekturattribute nicht festgelegt sind, überprüft Assembler die Standardkonfigurationseinstellung --with-arch=ISA.

-misa-spec=ISAspec

Wählen Sie die Standard-ISA-Spezifikationsversion aus. Wenn die Version von ISA nicht durch -march festgelegt wird, hilft Assembler dabei, die Version entsprechend der standardmäßig gewählten Spezifikation festzulegen. Wenn diese Option nicht festgelegt ist, überprüft der Assembler die Standardkonfigurationseinstellung --with-isa-spec=ISAspec.

-mpriv-spec=PRIVspec

Wählen Sie die privilegierte Spezifikationsversion aus. Wir können entscheiden, ob die CSR entsprechend der gewählten Spezifikation gültig ist oder nicht. Wenn diese Option und die Berechtigungsattribute nicht festgelegt sind, überprüft Assembler die Standardkonfigurationseinstellung --with-priv-spec=PRIVspec.

-mabi=ABI

Wählt den ABI aus, der entweder ilp32 oder lp64 ist, optional gefolgt von f, d oder q, um die Gleitkomma-Aufrufkonvention mit einfacher, doppelter oder vierfacher Genauigkeit anzugeben, oder „none“, um die Soft-Float-Aufrufkonvention anzugeben . Außerdem kann auf ilp32 optional ein e folgen, um den RVE-ABI anzugeben, der immer ein Soft-Float-Wert ist.

-mrelax

Nutzen Sie Linker-Relaxierungen, um die Anzahl der zur Materialisierung von Symboladressen erforderlichen Anweisungen zu reduzieren. (Standard)

-mno-relax

Führen Sie keine Linkerrelaxationen durch.

-march-attr

Generieren Sie den Standardinhalt für den Attributabschnitt „riscv elf“, wenn die .attribute-Anweisungen nicht festgelegt sind. In diesem Abschnitt werden die Informationen aufgezeichnet, die ein Linker oder Laufzeitlader zur Überprüfung der Kompatibilität benötigt. Zu diesen Informationen gehören ISA-String, Stapelausrichtungsanforderungen, nicht ausgerichtete Speicherzugriffe sowie die Haupt-, Neben- und Revisionsversion der privilegierten Spezifikation.

-mno-arch-attr

Generieren Sie nicht den standardmäßigen riscv elf-Attributabschnitt, wenn die .attribute-Anweisungen nicht festgelegt sind.

-mcsr-check

Aktivieren Sie die CSR-Prüfung für das ISA-abhängige CRS und das schreibgeschützte CSR. Die ISA-abhängigen CSR sind nur gültig, wenn die spezifische ISA festgelegt ist. Der schreibgeschützte CSR kann nicht von den CSR-Anweisungen geschrieben werden.

-mno-csr-check

Führen Sie keine CSR-Prüfung durch.

-mlittle-endian

Generieren Sie Code für eine Little-Endian-Maschine.

-mbig-endian

Generieren Sie Code für eine Big-Endian-Maschine.

Eine Dokumentation der RX-spezifischen Optionen finden Sie auf den Infoseiten.

Die folgenden Optionen sind verfügbar, wenn sie für die S390-Prozessorfamilie konfiguriert sind.

-m31
-m64

Wählen Sie die Wortgröße aus, entweder 31/32 Bit oder 64 Bit.

-mesa
-mzarch

Wählen Sie den Architekturmodus aus, entweder die Enterprise System Architecture (esa) oder den z/Architecture-Modus (zarch).

-march=processor

Geben Sie an, welche S390-Prozessorvariante das Ziel ist: g5 (oder arch3), g6, z900 (oder arch5), z990 (oder arch6), z9-109, z9-ec ( oder arch7), z10 (oder arch8), z196 (oder arch9) , zEC12 (oder arch10), z13 (oder arch11), z14 ( oder arch12), z15 (oder arch13) oder z16 (oder arch14). ).

-mregnames
-mno-regnames

Symbolische Namen für Register zulassen oder nicht zulassen.

-mwarn-areg-zero

Warnen Sie immer dann, wenn der Operand für ein Basis- oder Indexregister angegeben wurde, aber als Ergebnis Null ergibt.

Die folgenden Optionen sind verfügbar, wenn für einen TMS320C6000-Prozessor konfiguriert ist.

-march=arch

Aktivieren Sie (nur) Anweisungen aus der Architektur arch. Standardmäßig sind alle Anweisungen zulässig. Die folgenden Werte von arch werden akzeptiert: c62x, c64x, c64x+, c67x , c67x+, c674x.

-mdsbt
-mno-dsbt

Die Option -mdsbt veranlasst den Assembler, das Attribut Tag_ABI_DSBT mit dem Wert 1 zu generieren, was angibt, dass der Code DSBT-Adressierung verwendet. Die Standardoption -mno-dsbt führt dazu, dass das Tag den Wert 0 hat, was darauf hinweist, dass der Code keine DSBT-Adressierung verwendet. Der Linker gibt eine Warnung aus, wenn Objekte unterschiedlichen Typs (DSBT und Nicht-DSBT) miteinander verknüpft sind.

-mpid=no
-mpid=near
-mpid=far

Die Option -mpid= veranlasst den Assembler, das Attribut Tag_ABI_PID mit einem Wert zu generieren, der die vom Code verwendete Form der Datenadressierung angibt. -mpid=no, die Standardeinstellung, gibt eine positionsabhängige Datenadressierung an, -mpid=near gibt eine positionsunabhängige Adressierung mit GOT-Zugriffen unter Verwendung der Near-DP-Adressierung an und -mpid=far gibt eine ortsunabhängige Adressierung bei GOT-Zugriffen unter Verwendung der fernen DP-Adressierung an. Der Linker gibt eine Warnung aus, wenn Objekte, die mit unterschiedlichen Einstellungen dieser Option erstellt wurden, miteinander verknüpft werden.

-mpic
-mno-pic

Die Option -mpic veranlasst den Assembler, das Attribut Tag_ABI_PIC mit dem Wert 1 zu generieren, was angibt, dass der Code eine positionsunabhängige Codeadressierung verwendet. Die -mno Die Standardoption -pic bewirkt, dass das Tag den Wert 0 hat, was auf eine positionsabhängige Codeadressierung hinweist. Der Linker gibt eine Warnung aus, wenn Objekte unterschiedlichen Typs (positionsabhängig und positionsunabhängig) miteinander verknüpft werden.

-mbig-endian
-mlittle-endian

Generieren Sie Code für die angegebene Endianness. Der Standardwert ist Little-Endian.

Die folgenden Optionen sind verfügbar, wenn as für einen TILE-Gx-Prozessor konfiguriert ist.

-m32 | -m64

Wählen Sie die Wortgröße aus, entweder 32 Bit oder 64 Bit.

-EB | -EL

Wählen Sie die Endianness aus, entweder Big-Endian (-EB) oder Little-Endian (-EL).

Die folgende Option ist verfügbar, wenn sie für einen Visium-Prozessor konfiguriert ist.

-mtune=arch

Diese Option gibt die Zielarchitektur an. Wenn versucht wird, eine Anweisung zu assemblieren, die auf der Zielarchitektur nicht ausgeführt werden kann, gibt der Assembler eine Fehlermeldung aus. Folgende Namen werden erkannt: mcm24 mcm gr5 gr6

Die folgenden Optionen sind verfügbar, wenn für einen Xtensa-Prozessor konfiguriert ist.

--text-section-literals | --no-text-section-literals

Steuern Sie die Behandlung von Literalpools. Der Standardwert ist --no-text-section-literals, wodurch Literale in separaten Abschnitten in der Ausgabedatei platziert werden. Dadurch kann der Literalpool in einem Daten-RAM/ROM platziert werden. Mit --text-section-literals werden die Literale in den Textabschnitt eingestreut, um sie so nah wie möglich an ihren Referenzen zu halten. Dies kann bei großen Assemblydateien erforderlich sein, bei denen die Literale andernfalls außerhalb des Bereichs der L32R-Anweisungen im Textabschnitt liegen würden. Literale werden in Pools gruppiert, die den Anweisungen .literal_position oder den Anweisungen ENTRY folgen. Diese Optionen wirken sich nur auf Literale aus, auf die über PC-bezogene L32R-Anweisungen verwiesen wird. Literale für L32R-Anweisungen im Absolutmodus werden separat behandelt.

--auto-litpools | --no-auto-litpools

Steuern Sie die Behandlung von Literalpools. Der Standardwert ist --no-auto-litpools, der bei Fehlen von --text-section-literals Literale in separaten Abschnitten in der Ausgabedatei platziert. Dadurch kann der Literalpool in einem Daten-RAM/ROM platziert werden. Mit --auto-litpools werden die Literale in den Textabschnitt eingestreut, um sie so nah wie möglich an ihren Referenzen zu halten, explizite .literal_position-Direktiven sind nicht erforderlich. Dies kann bei sehr großen Funktionen erforderlich sein, bei denen ein einzelner Literalpool am Anfang der Funktion möglicherweise nicht durch L32R-Anweisungen am Ende erreichbar ist. Diese Optionen wirken sich nur auf Literale aus, auf die über PC-bezogene L32R-Anweisungen verwiesen wird. Literale für L32R-Anweisungen im Absolutmodus werden separat behandelt. Bei Verwendung zusammen mit --text-section-literals hat --auto-litpools Vorrang.

--absolute-literals | --no-absolute-literals

Geben Sie dem Assembler an, ob L32R-Anweisungen absolute oder PC-relative Adressierung verwenden. Wenn der Prozessor die absolute Adressierungsoption enthält, werden standardmäßig absolute L32R-Verschiebungen verwendet. Ansonsten können nur die PC-bezogenen L32R-Verschiebungen verwendet werden.

--target-align | --no-target-align

Aktivieren oder deaktivieren Sie die automatische Ausrichtung, um Verzweigungsstrafen zu reduzieren, was jedoch zu Lasten der Codegröße geht. Diese Optimierung ist standardmäßig aktiviert. Beachten Sie, dass der Assembler immer Anweisungen wie LOOP ausrichtet, für die feste Ausrichtungsanforderungen gelten.

--longcalls | --no-longcalls

Aktivieren oder deaktivieren Sie die Transformation von Anrufanweisungen, um Anrufe über einen größeren Adressbereich hinweg zu ermöglichen. Diese Option sollte verwendet werden, wenn Anrufziele möglicherweise außerhalb der Reichweite liegen. Es kann sowohl die Codegröße als auch die Leistung beeinträchtigen, aber der Linker kann im Allgemeinen den unnötigen Overhead optimieren, wenn ein Anruf in Reichweite landet. Der Standardwert ist --no-longcalls.

--transform | --no-transform

Aktivieren oder deaktivieren Sie alle Assembler-Transformationen von Xtensa-Anweisungen, einschließlich Entspannung und Optimierung. Der Standardwert ist --transform; --no-transform sollte nur in den seltenen Fällen verwendet werden, in denen die Anweisungen genau den Angaben in der Assembly-Quelle entsprechen müssen. Die Verwendung von --no-transform führt dazu, dass Befehlsoperanden außerhalb des gültigen Bereichs Fehler sind.

--rename-section oldname=newname

Benennen Sie den Abschnitt oldname in newname um. Diese Option kann mehrmals verwendet werden, um mehrere Abschnitte umzubenennen.

--trampolines | --no-trampolines

Aktivieren oder deaktivieren Sie die Transformation von Sprunganweisungen, um Sprünge über einen größeren Adressbereich zu ermöglichen. Diese Option sollte verwendet werden, wenn Sprungziele möglicherweise außerhalb der Reichweite liegen. Wenn solche Sprünge nicht vorhanden sind, hat diese Option keinen Einfluss auf die Codegröße oder Leistung. Der Standardwert ist --trampolines.

--abi-windowed | --abi-call0

Wählen Sie das ABI-Tag, das in den Abschnitt .xtensa.info geschrieben wird. Das ABI-Tag gibt den ABI des Assembler-Codes an. Bei dem Versuch, Objektdateien mit inkonsistenten ABI-Tags zu verknüpfen, wird vom Linker eine Warnung ausgegeben. Der Standard-ABI wird von der Xtensa-Kernkonfiguration ausgewählt.

Die folgenden Optionen sind verfügbar, wenn für einen Z80-Prozessor konfiguriert ist.

@chapter Z80-abhängige Funktionen

Befehlszeilenoptionen

-march=CPU[-EXT...][+EXT...]

Diese Option gibt den Zielprozessor an. Der Assembler gibt eine Fehlermeldung aus, wenn versucht wird, eine Anweisung zu assemblieren, die auf dem Zielprozessor nicht ausgeführt werden kann. Folgende Prozessornamen werden erkannt: z80, z180, ez80, gbz80, z80n, r800. Zusätzlich zum grundlegenden Befehlssatz kann der Assembler angewiesen werden, einige Erweiterungsmnemoniken zu akzeptieren. Beispielsweise erweitert -march=z180+sli+infc z180 mit SLI-Anweisungen und IN F,(C) . Die folgenden Erweiterungen werden derzeit unterstützt: full (alle bekannten Anweisungen), adl (ADL-CPU-Modus standardmäßig, nur eZ80), sli (Anweisung bekannt als SLI, SLL oder SL1), xyhl (Anweisungen mit halben Indexregistern: IXL , IXH, IYL, IYH), xdcb (Anweisungen wie RotOp (II +d),R und BitOp n,(II+d),R), infc (Anweisung IN F,(C) oder IN (C)), outc0 (Anweisung OUT (C),0). Beachten Sie, dass die Erweiterungsmnemoniken, die mit - beginnen, nicht einen grundlegenden Befehlssatz erweitern, sondern die entsprechende Funktionalität widerrufen: -march=z80-full+xyhl entfernt zunächst alle Standarderweiterungen und fügt sie hinzu Unterstützung nur für Indexregisterhälften. Wenn diese Option nicht angegeben ist, wird -march=z80+xyhl+infc angenommen.

-local-prefix=prefix

Markieren Sie alle Labels mit dem angegebenen Präfix als lokal. Eine solche Bezeichnung kann jedoch im Code explizit als global markiert werden. Diese Option ändert nicht das standardmäßige lokale Label-Präfix .L, sondern fügt lediglich ein neues hinzu.

-colonless

Akzeptieren Sie Etiketten ohne Doppelpunkt. Alle Symbole am Zeilenanfang werden als Beschriftungen behandelt.

-sdcc

Akzeptieren Sie den von SDCC erstellten Assembler-Code.

-fp-s=FORMAT

Format für Gleitkommazahlen mit einfacher Genauigkeit. Standard: ieee754 (32 Bit).

-fp-d=FORMAT

Format für Gleitkommazahlen mit doppelter Genauigkeit. Standard: ieee754 (64 Bit).

SIEHE AUCH

gcc (1), ld (1), and the Info entries for binutils and ld.

URHEBERRECHTE ©

Copyright (c) 1991-2023 Free Software Foundation, Inc.

Es wird die Erlaubnis erteilt, dieses Dokument gemäß den Bedingungen der GNU Free Documentation License, Version 1.3 oder einer späteren, von der Free Software Foundation veröffentlichten Version zu kopieren, zu verbreiten und/oder zu ändern. ohne invariante Abschnitte, ohne Texte auf der Vorderseite und ohne Texte auf der Rückseite. Eine Kopie der Lizenz ist im Abschnitt mit der Überschrift „GNU Free Documentation License“ enthalten.