as - referenční příručka, možnosti, příklady příkazů


NÁZEV

as AS - přenosný GNU assembler.

SYNOPSE

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 ...]

CÍLOVÁ

Cílit na možnosti AArch64:

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

Možnosti cílení alfa:

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

Možnosti cílového ARC:

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

Cílové možnosti ARM:

[-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]

Možnosti cílení Blackfin:

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

Možnosti cílového BPF:

[-EL] [-EB]

Cílové možnosti CRIS:

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

Cílové možnosti C-SKY:

[-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]

Cílové možnosti D10V:

[-O]

Cílové možnosti D30V:

[-O|-n|-N]

Možnosti cílení EPIPHANY:

[-mepiphany|-mepiphany16]

Cílové možnosti H8/300:

[-h-tick-hex]

Cílové možnosti i386:

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

Možnosti cíle 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]

Možnosti cílení IP2K:

[-mip2022|-mip2022ext]

Cílové možnosti M32C:

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

Možnosti cílení M32R:

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

Možnosti cílení M680X0:

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

Možnosti cílení M68HC11:

[-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]

Možnosti cílení MCORE:

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

Možnosti cílení metadat:

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

Cílové možnosti MICROBLAZE:

Možnosti cílového MIPS:

[-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]

Cílové možnosti MMIX:

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

Možnosti cílení Nios II:

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

Cílové možnosti NDS32:

[-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]

Cílové možnosti PDP11:

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

Možnosti cílení picoJava:

[-mb|-me]

Možnosti cílového PowerPC:

[-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]

Cílové možnosti PRU:

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

Cílové možnosti RISC-V:

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

Možnosti cílení RL78:

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

Možnosti cíleného příjmu:

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

Možnosti cílení s390:

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

Možnosti cílového SKORE:

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

Možnosti cílení SPARC:

[-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]

Cílit možnosti TIC54X:

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

Možnosti cílení TIC6X:

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

Možnosti cílení TILE-Gx:

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

Možnosti cílení Visium:

[-mtune=arch]

Možnosti cílení Xtensa:

[--[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]

Možnosti cílení Z80:

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

POPIS

GNU as je skutečně rodina assemblerů. Pokud používáte (nebo jste používali) assembler GNU na jedné architektuře, měli byste najít poměrně podobné prostředí, když jej používáte na jiné architektuře. Každá verze má mnoho společného s ostatními, včetně formátů objektových souborů, většiny direktiv assembleru (často nazývaných pseudo-ops) a syntaxe assembleru.

as je primárně určen k sestavení výstupu kompilátoru GNU C gcc pro použití linkerem ld. Přesto jsme se snažili jako správně sestavit vše, co by sestavili ostatní montážníci na stejném stroji. Jakékoli výjimky jsou výslovně zdokumentovány. To neznamená, že jako vždy používá stejnou syntaxi jako jiný assembler pro stejnou architekturu; například známe několik nekompatibilních verzí syntaxe assembleru 680x0.

Při každém spuštění jako se sestaví přesně jeden zdrojový program. Zdrojový program se skládá z jednoho nebo více souborů. (Standardní vstup je také soubor.)

Zadáte jako příkazový řádek, který nemá žádný nebo více názvů vstupních souborů. Vstupní soubory se čtou (od levého názvu souboru doprava). Argument příkazového řádku (na libovolné pozici), který nemá žádný zvláštní význam, se považuje za název vstupního souboru.

Pokud nezadáte as žádné názvy souborů, pokusí se přečíst jeden vstupní soubor ze standardního vstupu as, což je normálně váš terminál. Možná budete muset napsat ctl-D, abyste sdělili, že protože již není k sestavení žádný program.

Pokud potřebujete explicitně pojmenovat standardní vstupní soubor v příkazovém řádku, použijte --.

Pokud je zdroj prázdný, as vytvoří malý prázdný objektový soubor.

as může zapisovat varování a chybové zprávy do standardního chybového souboru (obvykle váš terminál). To by se nemělo stávat, když kompilátor běží jako automaticky. Varování hlásí předpoklad učiněný tak, aby as mohl pokračovat v sestavování chybného programu; chyby hlásí vážný problém, který zastaví montáž.

Pokud vyvoláváte as prostřednictvím kompilátoru GNU C, můžete použít volbu -Wa k předání argumentů do assembleru. Argumenty assembleru musí být od sebe (a -Wa) odděleny čárkami. Například:

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

Tím se assembleru předají dvě možnosti: -alh (vyšle výpis na standardní výstup s vysokou úrovní a zdrojem sestavení) a -L (zachovat místní symboly v tabulce symbolů ).

Obvykle tento mechanismus -Wa nemusíte používat, protože mnoho možností příkazového řádku kompilátoru je automaticky předáno assembleru kompilátorem. (Můžete zavolat ovladač kompilátoru GNU s volbou -v, abyste přesně viděli, jaké možnosti předává každému průchodu kompilace, včetně assembleru.)

MOŽNOSTI

  1. Přečtěte si možnosti příkazového řádku ze souboru. Načtené volby se vloží místo původní volby @soubor. Pokud soubor neexistuje nebo jej nelze číst, bude s volbou zacházeno doslovně a nebude odstraněna. Možnosti v souboru jsou odděleny mezerou. Znak mezery může být zahrnut do možnosti tak, že celou možnost obklopíte jednoduchými nebo dvojitými uvozovkami. Jakýkoli znak (včetně zpětného lomítka) může být zahrnut tak, že před znak, který má být zahrnut zpětným lomítkem, lze zahrnout předponu. Samotný soubor může obsahovat další možnosti @soubor; všechny takové možnosti budou zpracovány rekurzivně.

-a[cdghlmns]

Zapněte záznamy mnoha různými způsoby:

-ac

vynechat nepravdivé kondicionály

-ad

vynechat direktivy pro ladění

-ag

obsahovat obecné informace, jako je verze a předané možnosti

-ah

obsahovat zdroj na vysoké úrovni

-al

včetně montáže

-am

zahrnout makro rozšíření

-an

vynechat zpracování formulářů

-as

zahrnout symboly

=file

nastavte název souboru výpisu

Tyto možnosti můžete kombinovat; například pro výpis sestav bez zpracování formulářů použijte -aln. Možnost =soubor, pokud je použita, musí být poslední. Samotný -a je výchozí -ahls.

--alternate

Začněte v alternativním režimu makra.

--compress-debug-sections

Komprimujte sekce ladění DWARF pomocí zlib pomocí SHF_COMPRESSED z ELF ABI. Výsledný objektový soubor nemusí být kompatibilní se staršími linkery a obslužnými programy objektového souboru. Všimněte si, že pokud by komprese udělala danou sekci větší, pak není komprimována.

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

Tyto možnosti řídí, jak jsou komprimovány sekce ladění DWARF. --compress-debug-sections=none je ekvivalentní --nocompress-debug-sections. --compress-debug-sections=zlib a --compress-debug-sections=zlib-gabi jsou ekvivalentní --compress-debug-sections silný>. --compress-debug-sections=zlib-gnu komprimuje sekce ladění DWARF pomocí zastaralého formátu zlib-gnu. Sekce ladění jsou přejmenovány tak, aby začínaly .zdebug. --compress-debug-sections=zstd komprimuje sekce ladění DWARF pomocí zstd. Poznámka - pokud by komprese skutečně udělala sekci větší, pak se nekomprimuje ani nepřejmenuje.

--nocompress-debug-sections

Nekomprimujte sekce ladění DWARF. Toto je obvykle výchozí nastavení pro všechny cíle kromě x86/x86_64, ale k přepsání lze použít možnost konfigurace času.

-D

Pokud je podporováno, povolte odhalování v koncových serverech specifických pro cíl. Jinak ignorováno. I když je tato možnost ignorována, je přijata kvůli kompatibilitě skriptu s voláním jiných assemblerů.

--debug-prefix-map old=new

Při sestavování souborů v adresáři staré zaznamenejte informace o ladění, které je popisují jako nové.

--defsym sym=value

Před sestavením vstupního souboru definujte symbol sym jako hodnotu. hodnota musí být celočíselná konstanta. Stejně jako v C, počáteční 0x označuje hexadecimální hodnotu a počáteční 0 označuje osmičkovou hodnotu. Hodnotu symbolu lze uvnitř zdrojového souboru přepsat pomocí pseudo-op .set.

--dump-config

Zobrazí, jak je nakonfigurován assembler, a poté se ukončí.

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

Tyto možnosti řídí, zda má assembler ELF generovat společné symboly s typem STT_COMMON. Výchozí nastavení lze ovládat pomocí možnosti konfigurace --enable-elf-stt-common.

--emulation=name

Pokud je assembler nakonfigurován pro podporu více různých cílových konfigurací, lze tuto volbu použít k výběru požadovaného formuláře.

-f

rychle --- přeskočit mezery a předběžné zpracování komentářů (předpokládejme, že zdrojem je výstup kompilátoru).

-g
--gen-debug

Generujte informace o ladění pro každý zdrojový řádek assembleru pomocí libovolného formátu ladění, který cíl preferuje. To aktuálně znamená buď STABS, ECOFF nebo DWARF2. Když je formát ladění DWARF, pak se sekce .debug_info a .debug_line vygenerují pouze tehdy, když soubor sestavy sám žádnou nevygeneruje.

--gstabs

Generovat stabs ladicí informace pro každý řádek assembleru. To může pomoci při ladění kódu assembleru, pokud to ladicí program zvládne.

--gstabs+

Generujte stabs ladicí informace pro každý řádek assembleru, s GNU rozšířeními, která pravděpodobně zvládne pouze gdb, a která by mohla způsobit pád jiných debuggerů nebo odmítnout číst váš program. To může pomoci při ladění kódu assembleru. V současné době je jediným rozšířením GNU umístění aktuálního pracovního adresáře v době sestavování.

--gdwarf-2

Generujte ladicí informace DWARF2 pro každý řádek assembleru. To může pomoci při ladění kódu assembleru, pokud to ladicí program zvládne. Poznámka --- tuto možnost podporují pouze některé cíle, ne všechny.

--gdwarf-3

Tato možnost je stejná jako možnost --gdwarf-2, kromě toho, že umožňuje generování dalších ladicích informací podle verze 3 specifikace DWARF. Poznámka – povolení této možnosti nezaručuje generování jakýchkoli dalších informací, výběr je na základě cíle.

--gdwarf-4

Tato možnost je stejná jako možnost --gdwarf-2, kromě toho, že umožňuje generování dalších ladicích informací podle verze 4 specifikace DWARF. Poznámka – povolení této možnosti nezaručuje generování jakýchkoli dalších informací, výběr je na základě cíle.

--gdwarf-5

Tato možnost je stejná jako možnost --gdwarf-2, kromě toho, že umožňuje generování dalších ladicích informací podle verze 5 specifikace DWARF. Poznámka – povolení této možnosti nezaručuje generování jakýchkoli dalších informací, výběr je na základě cíle.

--gdwarf-sections

Namísto vytvoření sekce .debug_line vytvořte řadu sekcí .debug_line.foo, kde foo je název odpovídající sekce kódu. Například sekce kódu nazvaná .text.func bude mít informaci o čísle trpasličího řádku umístěnou do sekce nazvané .debug_line.text.func. Pokud se sekce kódu jmenuje pouze .text, pak se sekce ladícího řádku bude stále nazývat pouze .debug_line bez jakékoli přípony.

--gdwarf-cie-version=version

Kontrolujte, která verze DWARF Common Information Entries (CIE) se vytváří. Pokud tento příznak není specifikován, výchozí je verze 1, ačkoli některé cíle mohou toto výchozí nastavení změnit. Další možné hodnoty pro verze jsou 3 nebo 4.

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

Tyto volby řídí, zda má assembler ELF generovat poznámky k atributům GNU Build, pokud ve vstupních zdrojích žádné nejsou. Výchozí nastavení lze ovládat pomocí možnosti konfigurace --enable-generate-build-notes.

--gsframe
--gsframe

Vytvořte sekci .sframe z direktiv CFI.

--hash-size N

Ignorováno. Podporováno pro kompatibilitu příkazového řádku s jinými assemblery.

--help

Vytiskněte souhrn možností příkazového řádku a ukončete.

--target-help

Vytiskněte souhrn všech možností specifických pro cíl a ukončete.

-I dir

Přidejte adresář dir do seznamu pro vyhledávání direktiv .include.

-J

Nevarujte před podepsaným přetečením.

-K

Vydávat varování, když se rozdílové tabulky změnily kvůli dlouhým posunům.

-L
--keep-locals

Udržujte (v tabulce symbolů) místní symboly. Tyto symboly začínají předponami lokálních štítků specifických pro daný systém, obvykle .L pro systémy ELF nebo L pro tradiční systémy a.out.

--listing-lhs-width=number

Nastavte maximální šířku, slovy, sloupce výstupních dat pro výpis assembleru na číslo.

--listing-lhs-width2=number

Nastavte maximální šířku, slovy, sloupce výstupních dat pro pokračování řádků ve výpisu assembleru na číslo.

--listing-rhs-width=number

Nastavte maximální šířku vstupního zdrojového řádku, jak je zobrazena ve výpisu, na počet bajtů.

--listing-cont-lines=number

Nastavte maximální počet řádků vytištěných ve výpisu na jeden řádek vstupu na číslo + 1.

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

Řídí, jak assembler zpracovává vícebajtové znaky na vstupu. Výchozí (které lze obnovit pomocí argumentu allow) je povolit takové znaky bez stížností. Použití argumentu warn způsobí, že assembler vygeneruje varovnou zprávu, kdykoli narazí na jakýkoli vícebajtový znak. Použití argumentu warn-sym-only způsobí, že se varování vygeneruje pouze v případě, že je symbol definován s názvem, který obsahuje vícebajtové znaky. (Odkazy na nedefinované symboly nevygenerují varování).

--no-pad-sections

Zastavte assembler pro odsazení konců výstupních sekcí podle zarovnání této sekce. Výchozím nastavením je vyplnění sekcí, ale to může plýtvat místem, které může být potřeba u cílů, které mají omezená paměť.

-o objfile

Pojmenujte výstup objektového souboru z jako objfile.

-R

Přeložte datovou část do textové části.

--reduce-memory-overheads

Ignorováno. Podporováno pro kompatibilitu s nástroji, které používají stejnou možnost pro assembler i linker.

--sectname-subst

Čest substituční sekvence v názvech sekcí.

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

Vydejte chybu nebo varování pro neplatnou direktivu ELF .size.

--statistics

Vytiskněte maximální prostor (v bajtech) a celkový čas (v sekundách) využitý sestavou.

--strip-local-absolute

Odstraňte místní absolutní symboly z tabulky odchozích symbolů.

-v
-version

Vytiskněte verzi jako.

--version

Vytiskněte verzi jako a ukončete.

-W
--no-warn

Potlačit varovné zprávy.

--fatal-warnings

Považujte varování za chyby.

--warn

Nepotlačujte varovné zprávy ani je nepovažujte za chyby.

-w

Ignorováno.

-x

Ignorováno.

-Z

Vygenerujte soubor objektu i po chybách.

-- | files ...

Standardní vstup nebo zdrojové soubory k sestavení.

Následující možnosti jsou dostupné, když je nakonfigurován pro 64bitový režim architektury ARM (AArch64).

-EB

Tato možnost určuje, že výstup generovaný assemblerem by měl být označen jako kódovaný pro procesor big-endian.

-EL

Tato možnost určuje, že výstup generovaný assemblerem by měl být označen jako kódovaný pro procesor little-endian.

-mabi=abi

Určete, které ABI používá zdrojový kód. Rozpoznané argumenty jsou: ilp32 a lp64, které rozhodují o generovaném objektovém souboru ve formátu ELF32 a ELF64. Výchozí hodnota je lp64.

-mcpu=processor[+extension...]

Tato volba určuje cílový procesor. Assembler vydá chybovou zprávu, pokud je učiněn pokus sestavit instrukci, která se na cílovém procesoru nevykoná. Jsou rozpoznány následující názvy procesorů: 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 a cortex-x2.

Speciální název all může být použit k tomu, aby assembler mohl přijímat instrukce platné pro jakýkoli podporovaný procesor, včetně všech volitelných rozšíření. Kromě základní instrukční sady lze assembleru říci, aby přijal nebo omezil různé rozšiřující mnemotechnické pomůcky, které rozšiřují procesor. Pokud některé implementace konkrétního procesoru mohou mít rozšíření, pak jsou tato rozšíření automaticky povolena. V důsledku toho obvykle nebudete muset zadávat žádná další rozšíření.

-march=architecture[+extension...]

Tato možnost určuje cílovou architekturu. Assembler vydá chybovou zprávu, pokud je učiněn pokus sestavit instrukci, která se na cílové architektuře neprovede. Jsou rozpoznány následující názvy architektur: 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 a armv9.3-a. Pokud jsou zadány -mcpu i -march, assembler použije nastavení pro -mcpu. Pokud není zadáno ani jedno, assembler použije jako výchozí -mcpu=all. Volbu architektury lze rozšířit stejnými možnostmi rozšíření instrukční sady jako možnost -mcpu. Na rozdíl od -mcpu nejsou rozšíření ve výchozím nastavení vždy povolena,

-mverbose-error

Tato možnost umožňuje podrobné chybové zprávy pro plyn AArch64. Tato možnost je ve výchozím nastavení povolena.

-mno-verbose-error

Tato možnost zakáže podrobné chybové zprávy v plynu AArch64.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor Alpha.

-mcpu

Tato volba určuje cílový procesor. Pokud dojde k pokusu sestavit instrukci, která se na cílovém procesoru nespustí, může assembler buď instrukci rozšířit jako makro, nebo vydat chybovou zprávu. Tato možnost je ekvivalentní direktivě .arch. Jsou rozpoznány následující názvy procesorů: 21064, 21064a, 21066, 21068, 21164, 21164a, 21164pc, 21264, 21264a, 21264b, ev4, ev5, lca45, ev5, ev56, pca56 , ev6, ev67, ev68. Speciální název all může být použit k tomu, aby assembler mohl přijímat instrukce platné pro jakýkoli Alpha procesor. Abychom podpořili stávající praxi v OSF/1 s ohledem na .arch a stávající praxi v rámci MILO (zavaděč Linux ARC), očíslované názvy procesorů (např. 21064) povolit instrukce PALcode specifické pro procesor, zatímco elektro-vlasické názvy (např. ev4) nikoli.

-mdebug
-no-mdebug

Povolí nebo zakáže generování zapouzdření .mdebug pro direktivy stabs a popisovače procedur. Výchozí nastavení je automaticky povolit .mdebug, když je vidět první direktiva stabs.

-relax

Tato možnost vynutí uložení všech přemístění do souboru objektu namísto úspory místa a vyřešení některých přemístění v době sestavování. Všimněte si, že tato volba nerozšíří všechny aritmetiky symbolů do souboru objektu, protože ne všechny aritmetiky symbolů mohou být reprezentovány. Tato možnost však může být stále užitečná ve specifických aplikacích.

-replace
-noreplace

Povolí nebo zakáže optimalizaci volání procedur, a to jak při sestavení, tak v době propojení. Tyto možnosti jsou dostupné pouze pro cíle VMS a -replace je výchozí. Viz část 1.4.1 OpenVMS Linker Utility Manual.

-g

Tato možnost se používá, když kompilátor generuje informace o ladění. Když gcc používá ke generování ladicích informací pro ECOFF mips-tfile, musí být do souboru objektu předány místní štítky. Jinak tato možnost nemá žádný účinek.

-Gsize

Místní společný symbol větší než velikost je umístěn v .bss, zatímco menší symboly jsou umístěny v .sbss.

-F
-32addr

Tyto možnosti jsou kvůli zpětné kompatibilitě ignorovány.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor ARC.

-mcpu=cpu

Tato možnost vybírá variantu základního procesoru.

-EB | -EL

Vyberte výstup big-endian (-EB) nebo little-endian (-EL).

-mcode-density

Povolit pokyny pro rozšíření hustoty kódu.

Následující možnosti jsou dostupné, když je nakonfigurován pro rodinu procesorů ARM.

-mcpu=processor[+extension...]

Určete, která varianta procesoru ARM je cílová.

-march=architecture[+extension...]

Určete, kterou variantu architektury ARM používá cíl.

-mfpu=floating-point-format

Vyberte, která architektura s pohyblivou řádovou čárkou je cíl.

-mfloat-abi=abi

Vyberte, které ABI s plovoucí řádovou čárkou se používá.

-mthumb

Povolit dekódování instrukcí pouze pro palec.

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

Vyberte, která konvence volání procedur se používá.

-EB | -EL

Vyberte výstup big-endian (-EB) nebo little-endian (-EL).

-mthumb-interwork

Uveďte, že kód byl vygenerován s ohledem na spolupráci mezi kódem Thumb a ARM.

-mccs

Zapne režim kompatibility syntaxe sestavení CodeComposer Studio.

-k

Uveďte, že byl vygenerován PIC kód.

Následující možnosti jsou dostupné, když je nakonfigurován pro rodinu procesorů Blackfin.

-mcpu=processor[-sirevision]

Tato volba určuje cílový procesor. Volitelná sirevision se v assembleru nepoužívá. Je zde taková, že GCC může snadno předat svou volbu -mcpu=. Assembler vydá chybovou zprávu, pokud je učiněn pokus sestavit instrukci, která se na cílovém procesoru nevykoná. Jsou rozpoznány následující názvy procesorů: bf504, bf506, bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532, bf533, bf534 , bf535 (zatím neimplementováno), bf536, bf537, bf538, bf539 , bf542, bf542m, bf544, bf544m, bf547, bf547m , bf548, bf548m, bf549, bf549m, bf561, a bf592.

-mfdpic

Sestavte pro FDPIC ABI.

-mno-fdpic
-mnopic

Zakázat -mfdpic.

Následující možnosti jsou dostupné, když je nakonfigurován pro rodinu procesorů BPF s jádrem Linuxu.

@kapitola Funkce závislé na BPF

Možnosti

-EB

Tato volba určuje, že assembler by měl vydávat big-endian eBPF.

-EL

Tato volba určuje, že assembler by měl vydávat little-endian eBPF.

Všimněte si, že pokud není v příkazovém řádku zadána žádná volba endianness, použije se hostitelská endianness. Dokumentaci možností specifických pro CRIS naleznete na informačních stránkách.

Následující možnosti jsou dostupné, když je nakonfigurován pro rodinu procesorů C-SKY.

-march=archname

Sestavte pro architekturu archname. Možnost --help uvádí platné hodnoty pro archname.

-mcpu=cpuname

Sestavení pro architekturu cpuname. Možnost --help uvádí platné hodnoty pro cpuname.

-EL
-mlittle-endian

Generovat výstup typu little-endian.

-EB
-mbig-endian

Generujte výstup big-endian.

-fpic
-pic

Vygenerujte kód nezávislý na pozici.

-mljump
-mno-ljump

Povolí/zakáže transformaci krátkých instrukcí větve jbf, jbt a jbr na jmpi. Tato možnost je pouze pro procesory V2. Je ignorován na cílech CK801 a CK802, které nepodporují instrukci jmpi, a pro ostatní procesory je standardně povolen.

-mbranch-stub
-mno-branch-stub

Předejte přes R_CKCORE_PCREL_IMM26BY2 přemístění pro instrukce bsr do linkeru. Tato možnost je dostupná pouze pro kovové terče C-SKY V2 ELF, kde je ve výchozím nastavení povolena. Nelze jej použít v kódu, který bude dynamicky propojen se sdílenými knihovnami.

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

Povolí/zakáže transformaci instrukcí jbsr na bsr. Tato možnost je vždy povolena (a -mno-force2bsr je ignorována) pro cíle CK801/CK802. Je také vždy povoleno, když je aktivní -mbranch-stub.

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

Povolí/zakáže transformaci instrukcí jsri na bsr. Tato možnost je ve výchozím nastavení povolena.

-mnolrw
-mno-lrw

Povolí/zakáže transformaci instrukcí lrw na pár movih/ori.

-melrw
-mno-elrw

Povolit/zakázat rozšířené instrukce lrw. Tato možnost je standardně povolena pro procesory řady CK800.

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

Povolit/zakázat umístění doslovných fondů po každé funkci.

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

Povolit/zakázat umístění doslovných fondů po nepodmíněných větvích. Tato možnost je ve výchozím nastavení povolena.

-mistack
-mno-istack

Povolit/zakázat instrukce zásobníku přerušení. Tato možnost je standardně povolena na procesorech CK801, CK802 a CK802.

Následující možnosti explicitně umožňují určité volitelné pokyny. Tyto funkce jsou také povoleny implicitně pomocí -mcpu= k určení procesoru, který je podporuje.

-mhard-float

Povolit pokyny pro tvrdé plavání.

-mmp

Povolit víceprocesorové instrukce.

-mcp

Povolit instrukce koprocesoru.

-mcache

Povolit instrukce předběžného načtení mezipaměti.

-msecurity

Povolte bezpečnostní pokyny C-SKY.

-mtrust

Povolit pokyny důvěryhodnosti C-SKY.

-mdsp

Povolit instrukce DSP.

-medsp

Povolit rozšířené instrukce DSP.

-mvdsp

Povolit vektorové instrukce DSP.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor Epiphany.

-mepiphany

Určuje, že jsou povoleny 32bitové i 16bitové instrukce. Toto je výchozí chování.

-mepiphany16

Omezuje povolené instrukce pouze na 16bitovou sadu.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor H8/300. @kapitola Závislé funkce H8/300

Možnosti

Verze as Renesas H8/300 má jednu možnost závislou na počítači:

-h-tick-hex

Kromě stylu 0x00 podporuje hexadecimální konstanty stylu H'00.

-mach=name

Nastavuje variantu stroje H8300. Jsou rozpoznány následující názvy počítačů: h8300h, h8300hn, h8300s, h8300sn, h8300sx a h8300sxn.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor i386.

--32 | --x32 | --64

Vyberte velikost slova, buď 32 bitů nebo 64 bitů. --32 implikuje architekturu Intel i386, zatímco --x32 a --64 implikuje architekturu AMD x86-64 s 32bitovou nebo 64-bitovou architekturou bitová velikost slova. Tyto možnosti jsou dostupné pouze s formátem objektového souboru ELF a vyžadují, aby byla zahrnuta nezbytná podpora BFD (na 32bitové platformě musíte přidat --enable-64-bit-bfd, abyste nakonfigurovali povolení 64bitového použití a použijte x86-64 jako cílovou platformu).

-n

Ve výchozím nastavení x86 GAS nahrazuje více instrukcí nop používaných pro zarovnání v sekcích kódu vícebajtovými instrukcemi nop, jako je leal 0(%esi,1),%esi. Tento přepínač zakáže optimalizaci, pokud je jednobajtový nop (0x90) explicitně zadán jako výplňový bajt pro zarovnání.

--divide

Na platformách odvozených od SVR4 je znak / považován za znak komentáře, což znamená, že jej nelze použít ve výrazech. Možnost --divide změní / na normální znak. Toto nezakáže / na začátku řádku začínajícího komentářem ani neovlivní použití # pro zahájení komentáře.

-march=CPU[+EXTENSION...]

Tato volba určuje cílový procesor. Assembler vydá chybovou zprávu, pokud je učiněn pokus sestavit instrukci, která se na cílovém procesoru nevykoná. Jsou rozpoznány následující názvy procesorů: 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 a generic64. Kromě základní instrukční sady lze assembleru říci, aby akceptoval různé rozšiřující mnemotechnické pomůcky. Například -march=i686+sse4+vmx rozšiřuje i686 o sse4 a vmx.

Aktuálně jsou podporována následující rozšíření: 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 a visací zámek.

Všimněte si, že tyto mnemotechnické pomůcky rozšíření mohou mít předponu no, aby se zrušila příslušná (a všechny závislé) funkce. Když je direktiva .arch použita s -march, bude mít přednost direktiva .arch.

-mtune=CPU

Tato volba určuje procesor, pro který se má optimalizovat. Při použití ve spojení s volbou -march budou generovány pouze instrukce procesoru určeného volbou -march. Platné hodnoty CPU jsou totožné se seznamem procesorů -march=CPU.

-msse2avx

Tato volba určuje, že assembler by měl kódovat instrukce SSE s předponou VEX.

-muse-unaligned-vector-move

Tato volba určuje, že assembler by měl kódovat zarovnaný vektorový pohyb jako nezarovnaný vektorový pohyb.

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

Tyto možnosti určují, zda má assembler kontrolovat instrukce SSE. -msse-check=none způsobí, že assembler nebude kontrolovat instrukce SSE, což je výchozí nastavení. -msse-check=warning způsobí, že assembler vydá varování pro jakoukoli instrukci SSE. -msse-check=chyba způsobí, že assembler vydá chybu pro jakoukoli instrukci SSE.

-mavxscalar=128
-mavxscalar=256

Tyto možnosti řídí, jak by měl assembler kódovat skalární instrukce AVX. -mavxscalar=128 zakóduje skalární instrukce AVX s délkou vektoru 128 bitů, což je výchozí nastavení. -mavxscalar=256 zakóduje skalární instrukce AVX s délkou vektoru 256 bitů. VAROVÁNÍ: Toto nepoužívejte pro produkční kód – kvůli chybám CPU nemusí výsledný kód na některých modelech fungovat.

-mvexwig=0
-mvexwig=1

Tyto možnosti řídí, jak by měl assembler kódovat instrukce VEX ignorované VEX.W (WIG). -mvexwig=0 zakóduje instrukce WIG VEX s vex.w=0, což je výchozí hodnota. -mvexwig=1 zakóduje instrukce WIG EVEX s vex.w=1. VAROVÁNÍ: Toto nepoužívejte pro produkční kód – kvůli chybám CPU nemusí výsledný kód pracovat na určitých modelech.

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

Tyto možnosti řídí, jak by měl assembler kódovat instrukce EVEX ignorované délky (LIG). -mevexlig=128 zakóduje instrukce LIG EVEX s délkou vektoru 128 bitů, což je výchozí nastavení. -mevexlig=256 a -mevexlig=512 zakódují instrukce LIG EVEX s 256bitovou a 512bitovou délkou vektoru. .

-mevexwig=0
-mevexwig=1

Tyto volby řídí, jak by měl assembler kódovat w-ignorované (WIG) instrukce EVEX. -mevexwig=0 zakóduje instrukce WIG EVEX s evex.w=0, což je výchozí hodnota. -mevexwig=1 zakóduje instrukce WIG EVEX s evex.w=1.

-mmnemonic=att
-mmnemonic=intel

Tato volba specifikuje mnemotechnickou pomůcku pro porovnávání instrukcí. Direktivy .att_mnemonic a .intel_mnemonic budou mít přednost.

-msyntax=att
-msyntax=intel

Tato volba specifikuje syntaxi instrukce při zpracování instrukcí. Direktivy .att_syntax a .intel_syntax budou mít přednost.

-mnaked-reg

Tato možnost určuje, že registry nevyžadují prefix %. Direktivy .att_syntax a .intel_syntax budou mít přednost.

-madd-bnd-prefix

Tato volba nutí assembler přidat BND prefix do všech větví, i když takový prefix nebyl explicitně specifikován ve zdrojovém kódu.

-mno-shared

Na cíli ELF assembler normálně optimalizuje ne-PLT relokace proti definovaným neslabým globálním cílům větví s výchozí viditelností. Volba -mshared říká assembleru, aby vygeneroval kód, který může jít do sdílené knihovny, kde mohou být preemptovány všechny neslabé globální cíle větví s výchozí viditelností. Výsledný kód je o něco větší. Tato volba ovlivní pouze práci s instrukcemi větve.

-mbig-obj

U cíle PE/COFF si tato možnost vynutí použití formátu velkého objektu, který umožňuje více než 32 768 sekcí.

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

Tyto možnosti řídí, jak by měl assembler kódovat prefix zámku. Tato možnost je určena jako řešení pro procesory, které selžou na předponě zámku. Tuto možnost lze bezpečně použít pouze u jednojádrových počítačů s jedním vláknem -momit-lock-prefix=yes vynechá všechny předpony zámků. -momit-lock-prefix=no zakóduje předponu zámku jako obvykle, což je výchozí nastavení.

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

Tyto možnosti řídí, jak by měl assembler kódovat lfence, mfence a sfence. -mfence-as-lock-add=yes zakóduje lfence, mfence a sfence jako lock addl $0x0, (%rsp ) v 64bitovém režimu a lock addl $0x0, (%esp) v 32bitovém režimu. -mfence-as-lock-add=no zakóduje lfence, mfence a sfence jako obvykle, což je výchozí nastavení.

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

Tyto možnosti řídí, zda má assembler generovat relaxační relokace, R_386_GOT32X, v 32bitovém režimu, nebo R_X86_64_GOTPCRELX a R_X86_64_REX_GOTPCRELX, v 64bitovém režimu. -mrelax-relocations=yes vygeneruje relaxační přemístění. -mrelax-relocations=no nevygeneruje relaxační přemístění. Výchozí nastavení lze ovládat pomocí možnosti konfigurace --enable-x86-relax-relocations.

-malign-branch-boundary=NUM

Tato možnost řídí, jak by měl assembler zarovnat větve s předponami segmentů nebo NOP. NUM musí být mocninou 2. Mělo by být 0 nebo ne méně než 16. Větve budou zarovnány v rámci NUM bytové hranice. -malign-branch-boundary=0, což je výchozí nastavení, nezarovnává větve.

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

Tato možnost určuje typy větví, které se mají zarovnat. TYPE je kombinací jcc, která zarovnává podmíněné skoky, fúze, která zarovnává sloučené podmíněné skoky, jmp, která zarovná nepodmíněné skoky, call, který zarovná volání, ret, který zarovná rets, indirect, který zarovná nepřímé skoky a volání. Výchozí hodnota je -malign-branch=jcc+fused+jmp.

-malign-branch-prefix-size=NUM

Tato volba určuje maximální počet prefixů v instrukci pro zarovnání větví. NUM by mělo být mezi 0 a 5. Výchozí NUM je 5.

-mbranches-within-32B-boundaries

Tato volba zarovná podmíněné skoky, sloučené podmíněné skoky a nepodmíněné skoky v rámci hranice 32 bajtů s až 5 předponami segmentu v instrukci. Je ekvivalentní -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5<. Výchozí nezarovnává větve.

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

Tyto volby řídí, zda má assembler po načtení instrukcí generovat lfence. -mlfence-after-load=yes vygeneruje lfence. -mlfence-after-load=no nevygeneruje lfence, což je výchozí nastavení.

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

Tyto volby řídí, zda má assembler generovat lfence před nepřímými instrukcemi blízké větve. -mlfence-before-indirect-branch=all vygeneruje lfence před nepřímou blízkou pobočkou přes registr a před nepřímou blízkou pobočkou přes paměť vydá varování. Implicitně také nastavuje -mlfence-before-ret=shl, když neexistuje žádné explicitní -mlfence-before-ret=. -mlfence-before-indirect-branch=register vygeneruje lfence před nepřímou blízkou pobočkou prostřednictvím registru. -mlfence-before-indirect-branch=memory vydá varování před nepřímou blízkou větví prostřednictvím paměti. -mlfence-before-indirect-branch=none nevygeneruje ochranu ani nevydá varování, což je výchozí nastavení. Všimněte si, že lfence nebude generována před nepřímou blízkostí větve prostřednictvím registru s -mlfence-after-load=yes, protože lfence bude generována po načtení cílového registru větve.

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

Tyto možnosti řídí, zda má assembler generovat fenence před ret. -mlfence-before-ret=nebo vygeneruje generování nebo instrukce pomocí lfence. -mlfence-before-ret=shl/yes vygeneruje instrukce shl pomocí lfence. -mlfence-before-ret=not vygeneruje pokyn not s lfence. -mlfence-before-ret=none nevygeneruje lfence, což je výchozí nastavení.

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

Tyto možnosti řídí, zda má assembler generovat poznámky k vlastnostem GNU_PROPERTY_X86_ISA_1_USED a GNU_PROPERTY_X86_FEATURE_2_USED. Výchozí nastavení lze ovládat pomocí možnosti konfigurace --enable-x86-used-note.

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

Tyto možnosti řídí, jak by měl assembler kódovat instrukce EVEX pouze pro SAE. -mevexrcig=rne zakóduje RC bity instrukce EVEX s 00, což je výchozí nastavení. -mevexrcig=rd, -mevexrcig=ru a -mevexrcig=rz bude kódovat instrukce EVEX pouze SAE s 01, 10 a 11 bity RC, v tomto pořadí.

-mamd64
-mintel64

Tato možnost určuje, že assembler by měl přijímat pouze AMD64 nebo Intel64 ISA v 64bitovém režimu. Výchozí nastavení je přijímat běžné, pouze Intel64 a AMD64 ISA.

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

Optimalizujte kódování instrukce s menší velikostí instrukce. -O a -O1 kódují 64bitové instrukce načtení registru s 64bitovými okamžitými příkazy jako 32bitové instrukce načtení registru s 31bitovými nebo 32bitovými okamžitými příkazy, kódují 64 -Instrukce pro vymazání bitových registrů s 32bitovými instrukcemi pro vymazání registru, zakódujte instrukce pro vymazání 256bitových/512bitových vektorových registrů VEX/EVEX s instrukcemi pro vymazání 128bitových vektorových registrů VEX, zakódujte 128bitové/256bitové zatížení vektorového registru EVEX /store instrukce s instrukcemi načítání/ukládání vektorových registrů VEX a kódování 128bitových/256bitových logických celočíselných instrukcí EVEX s 128bitovými/256bitovými logickými celočíselnými sbalenými VEX. -O2 zahrnuje optimalizaci -O1 plus kóduje instrukce pro vymazání 256bitových/512bitových vektorových registrů EVEX s instrukcemi pro vymazání 128bitových vektorových registrů EVEX. V 64bitovém režimu instrukce kódované VEX s komutativními zdrojovými operandy budou mít také své zdrojové operandy zaměněny, pokud to umožňuje použití 2bajtové formy předpony VEX namísto 3bajtové. Určité formy AND a OR se stejným (registrovým) operandem zadaným dvakrát se také změní na TEST. -Os zahrnuje optimalizaci -O2 plus kóduje 16bitové, 32bitové a 64bitové testy registrů s okamžitým jako 8bitový test registru s okamžitým. -O0 tuto optimalizaci vypne.

Následující možnosti jsou dostupné, když je nakonfigurován pro řadu Ubicom IP2K.

-mip2022ext

Určuje, že jsou povoleny rozšířené instrukce IP2022.

-mip2022

Obnovuje výchozí chování, které omezuje povolené instrukce pouze na základní IP2022.

Následující možnosti jsou dostupné, když jsou nakonfigurovány pro procesory Renesas M32C a M16C.

-m32c

Sestavte pokyny pro M32C.

-m16c

Sestavte instrukce M16C (výchozí).

-relax

Povolit podporu pro relaxaci v době propojení.

-h-tick-hex

Kromě stylu 0x00 podporuje hexadecimální konstanty stylu H'00.

Následující možnosti jsou dostupné, když je nakonfigurován pro řadu Renesas M32R (dříve Mitsubishi M32R).

--m32rx

Určete, který procesor v rodině M32R je cílový. Výchozí nastavení je normálně M32R, ale tato možnost jej změní na M32RX.

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

Vytvářejte varovné zprávy, když narazíte na pochybné paralelní konstrukce.

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

Nevytvářejte varovná hlášení, když narazíte na sporné paralelní konstrukce.

Následující možnosti jsou dostupné, když je nakonfigurován pro řadu Motorola 68000.

-l

Zkraťte odkazy na nedefinované symboly na jedno slovo místo dvou.

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

Určete, který procesor v rodině 68000 je cílový. Výchozí hodnota je normálně 68020, ale to lze změnit v době konfigurace.

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

Cílový počítač má (nebo nemá) koprocesor s pohyblivou řádovou čárkou. Výchozí nastavení je předpokládat koprocesor pro 68020, 68030 a cpu32. Ačkoli základní 68000 není kompatibilní s 68881, lze specifikovat kombinaci obou, protože je možné provést emulaci instrukcí koprocesoru s hlavním procesorem.

-m68851 | -mno-68851

Cílový počítač má (nebo nemá) koprocesor jednotky správy paměti. Výchozí nastavení je předpokládat MMU pro 68020 a vyšší.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor Altera Nios II.

-relax-section

Pokud je to možné, nahraďte identifikované větve mimo rozsah sekvencemi jmp relativními pro PC. Generované kódové sekvence jsou vhodné pro použití v pozičně nezávislém kódu, ale existuje praktický limit na rozšířený rozsah větvení kvůli délce sekvencí. Tato možnost je výchozí.

-relax-all

Instrukce větve, u kterých nelze určit, že jsou v dosahu, a všechny instrukce volání nahraďte sekvencemi jmp a callr (v tomto pořadí). Tato volba generuje absolutní přemístění vůči cílovým symbolům a není vhodná pro kód nezávislý na poloze.

-no-relax

Nenahrazujte žádné pobočky ani hovory.

-EB

Generujte výstup big-endian.

-EL

Generovat výstup typu little-endian. Toto je výchozí nastavení.

-march=architecture

Tato možnost určuje cílovou architekturu. Assembler vydá chybovou zprávu, pokud dojde k pokusu o sestavení instrukce, která se na cílové architektuře nevykoná. Jsou rozpoznány následující názvy architektur: r1, r2. Výchozí hodnota je r1.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor PRU.

-mlink-relax

Předpokládejme, že LD by optimalizoval instrukce LDI32 kontrolou horních 16 bitů výrazu. Pokud jsou všechny nuly, pak LD zkrátí instrukci LDI32 na jediné LDI. V takovém případě as vypíše přemístění DIFF pro výrazy rozdílu.

-mno-link-relax

Předpokládejme, že LD nebude optimalizovat instrukce LDI32. V důsledku toho nebudou emitovány přemístění DIFF.

-mno-warn-regname-label

Nevarujte, pokud se název štítku shoduje s názvem registru. Programátoři assembleru obvykle budou chtít, aby se toto varování zobrazilo. Kompilátory C mohou chtít toto vypnout.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor MIPS.

-G num

Tato volba nastavuje největší velikost objektu, na který lze implicitně odkazovat pomocí registru gp. Je akceptován pouze pro cíle, které používají formát ECOFF, jako je DECstation se systémem Ultrix. Výchozí hodnota je 8.

-EB

Vygenerujte výstup ve formátu big endian.

-EL

Vygenerujte výstup ve formátu little endian.

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

Vygenerujte kód pro konkrétní úroveň architektury MIPS Instruction Set Architecture. -mips1 je alias pro -march=r3000, -mips2 je alias pro -march=r6000, -mips3 je alias pro -march=r4000 a -mips4 je alias pro -march=r8000. -mips5, -mips32, -mips32r2, -mips32r3, -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5, a -mips64r6 odpovídají obecným 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 a MIPS64 Vydání 6 procesorů ISA, resp.

-march=cpu

Vygenerujte kód pro konkrétní CPU MIPS.

-mtune=cpu

Naplánujte a vylaďte pro konkrétní CPU MIPS.

-mfix7000
-mno-fix7000

Způsobí vložení nops, pokud v následujících dvou instrukcích dojde ke čtení cílového registru instrukce mfhi nebo mflo.

-mfix-rm7000
-mno-fix-rm7000

Pokud po instrukci dmult nebo dmultu následuje instrukce načíst, způsobí vložení nops.

-mfix-r5900
-mno-fix-r5900

Nepokoušejte se naplánovat předchozí instrukci do slotu zpoždění větvené instrukce umístěné na konci krátké smyčky šesti nebo méně instrukcí a vždy tam místo toho naplánujte instrukci nop. Chyba krátké smyčky za určitých podmínek způsobí, že se smyčky provedou pouze jednou nebo dvakrát, kvůli hardwarové chybě v čipu R5900.

-mdebug
-no-mdebug

Způsobit, že výstup ladění ve stylu stabs přejde do sekce .mdebug ve stylu ECOFF namísto standardních sekcí .stabs ELF.

-mpdr
-mno-pdr

Řídí generování sekcí .pdr.

-mgp32
-mfp32

Velikosti registrů jsou normálně odvozeny z ISA a ABI, ale tyto příznaky nutí určitou skupinu registrů, aby bylo vždy zacházeno s šířkou 32 bitů. -mgp32 řídí velikost obecných registrů a -mfp32 řídí velikost registrů s pohyblivou řádovou čárkou.

-mgp64
-mfp64

Velikosti registrů jsou normálně odvozeny z ISA a ABI, ale tyto příznaky nutí určitou skupinu registrů, aby bylo vždy zacházeno s šířkou 64 bitů. -mgp64 řídí velikost obecných registrů a -mfp64 řídí velikost registrů s pohyblivou řádovou čárkou.

-mfpxx

Velikosti registrů jsou obvykle odvozeny z ISA a ABI, ale použití tohoto příznaku v kombinaci s -mabi=32 umožňuje variantu ABI, která bude správně fungovat s registry s plovoucí desetinnou čárkou, které jsou široké 32 nebo 64 bitů. .

-modd-spreg
-mno-odd-spreg

Povolit použití operací s plovoucí desetinnou čárkou na lichých registrech s jednoduchou přesností, pokud to ISA podporuje. -mfpxx znamená -mno-odd-spreg, jinak je výchozí nastavení -modd-spreg.

-mips16
-no-mips16

Vygenerujte kód pro procesor MIPS 16. To je ekvivalentní umístění .module mips16 na začátek souboru sestavení. -no-mips16 tuto možnost vypne.

-mmips16e2
-mno-mips16e2

Povolte použití instrukcí MIPS16e2 v režimu MIPS16. To je ekvivalentní umístění .module mips16e2 na začátek souboru sestavení. -mno-mips16e2 tuto možnost vypne.

-mmicromips
-mno-micromips

Vygenerujte kód pro procesor microMIPS. To je ekvivalentní umístění .module micromips na začátek souboru sestavení. -mno-micromips tuto možnost vypne. To je ekvivalentní umístění .module nomicromips na začátek souboru sestavení.

-msmartmips
-mno-smartmips

Povolí rozšíření SmartMIPS k instrukční sadě MIPS32. To je ekvivalentní umístění .module smartmips na začátek souboru sestavení. -mno-smartmips tuto možnost vypne.

-mips3d
-no-mips3d

Vygenerujte kód pro rozšíření specifické pro aplikaci MIPS-3D. To říká assembleru, aby přijal instrukce MIPS-3D. -no-mips3d tuto možnost vypne.

-mdmx
-no-mdmx

Vygenerujte kód pro rozšíření specifické pro aplikaci MDMX. To říká assembleru, aby přijal instrukce MDMX. -no-mdmx tuto možnost vypne.

-mdsp
-mno-dsp

Vygenerujte kód pro rozšíření specifické pro aplikaci DSP Release 1. To říká assembleru, aby přijal instrukce DSP Release 1. -mno-dsp tuto možnost vypne.

-mdspr2
-mno-dspr2

Vygenerujte kód pro specifické rozšíření aplikace DSP Release 2. Tato možnost znamená -mdsp. To říká assembleru, aby přijal instrukce DSP Release 2. -mno-dspr2 tuto možnost vypne.

-mdspr3
-mno-dspr3

Vygenerujte kód pro specifické rozšíření aplikace DSP Release 3. Tato možnost zahrnuje -mdsp a -mdspr2. To říká assembleru, aby přijal instrukce DSP Release 3. -mno-dspr3 tuto možnost vypne.

-mmsa
-mno-msa

Vygenerujte kód pro rozšíření MIPS SIMD Architecture Extension. To říká assembleru, aby přijal instrukce MSA. -mno-msa tuto možnost vypne.

-mxpa
-mno-xpa

Vygenerujte kód pro rozšíření MIPS eXtended Physical Address (XPA). To říká assembleru, aby přijal instrukce XPA. -mno-xpa tuto možnost vypne.

-mmt
-mno-mt

Vygenerujte kód pro rozšíření specifické pro aplikaci MT. To říká assembleru, aby přijal instrukce MT. -mno-mt tuto možnost vypne.

-mmcu
-mno-mcu

Vygenerujte kód pro rozšíření specifické pro aplikaci MCU. To říká assembleru, aby přijal instrukce MCU. -mno-mcu tuto možnost vypne.

-mcrc
-mno-crc

Vygenerujte kód pro specifické rozšíření aplikace MIPS cyklické redundantní kontroly (CRC). To říká assembleru, aby přijal instrukce CRC. -mno-crc tuto možnost vypne.

-mginv
-mno-ginv

Vygenerujte kód pro specifické rozšíření aplikace Global INValidate (GINV). To říká assembleru, aby přijal instrukce GINV. -mno-ginv tuto možnost vypne.

-mloongson-mmi
-mno-loongson-mmi

Vygenerujte kód pro specifické rozšíření aplikace Loongson MultiMedia extensions Instructions (MMI). To říká assembleru, aby přijal instrukce MMI. -mno-loongson-mmi tuto možnost vypne.

-mloongson-cam
-mno-loongson-cam

Vygenerujte kód pro instrukce Loongson Content Address Memory (CAM). To říká assembleru, aby přijal instrukce Loongson CAM. -mno-loongson-cam tuto možnost vypne.

-mloongson-ext
-mno-loongson-ext

Vygenerujte kód pro instrukce Loongson EXTensions (EXT). To říká assembleru, aby přijal instrukce Loongson EXT. -mno-loongson-ext tuto možnost vypne.

-mloongson-ext2
-mno-loongson-ext2

Vygenerujte kód pro instrukce Loongson EXTensions R2 (EXT2). Tato možnost znamená -mloongson-ext. To říká assembleru, aby přijal instrukce Loongson EXT2. -mno-loongson-ext2 tuto možnost vypne.

-minsn32
-mno-insn32

Při generování kódu pro procesor microMIPS používejte pouze 32bitové kódování instrukcí. Tato možnost brání použití jakýchkoli 16bitových instrukcí. To je ekvivalentní umístění .set insn32 na začátek souboru sestavení. -mno-insn32 tuto možnost vypne. To je ekvivalentní umístění .set noinsn32 na začátek souboru sestavení. Ve výchozím nastavení je vybrána možnost -mno-insn32, která umožňuje použití všech instrukcí.

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

Možnost --no-construct-floats zakáže konstrukci konstant s pohyblivou řádovou čárkou s dvojitou šířkou načtením dvou polovin hodnoty do dvou registrů s plovoucí desetinnou čárkou s jednoduchou šířkou, které tvoří registr s dvojitou šířkou. Ve výchozím nastavení je vybráno --construct-floats, což umožňuje konstrukci těchto konstant s pohyblivou řádovou čárkou.

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

Možnost --relax-branch umožňuje relaxaci větví mimo dosah. Ve výchozím nastavení je vybrána možnost --no-relax-branch, což způsobí, že všechny větve mimo rozsah způsobí chybu.

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

Ignorujte kontroly větví na neplatné přechody mezi režimy ISA. Sémantika větví neposkytuje přepínač režimu ISA, takže ve většině případů musí být režim ISA, pro který byla větev zakódována, stejný jako režim ISA cílového štítku větve. Proto má GAS implementovány kontroly, které ověřují v sestavení větve, že se dva režimy ISA shodují. -mignore-branch-isa tyto kontroly zakáže. Ve výchozím nastavení je vybrána možnost -mno-ignore-branch-isa, což způsobí, že jakákoli neplatná větev vyžadující přechod mezi režimy ISA způsobí chybu.

-mnan=encoding

Vyberte si mezi formátem kódování IEEE 754-2008 (-mnan=2008) nebo starším (-mnan=legacy) NaN. To druhé je výchozí.

--emulation=name

Tato možnost se dříve používala k přepínání mezi výstupem ELF a ECOFF na cílech jako IRIX 5, které podporovaly obojí. Podpora MIPS ECOFF byla v GAS 2.24 odstraněna, takže tato možnost nyní neplní žádný účel. Je zachován pro zpětnou kompatibilitu. Dostupné názvy konfigurací jsou: mipself, mipslelf a mipsbelf. Volba mipself nyní nemá žádný účinek, protože výstup je vždy ELF. mipslelf a mipsbelf vybírají výstup small- a big-endian, ale -EL a -EB jsou nyní místo toho preferované možnosti.

-nocpp

jako tuto možnost ignoruje. Je přijímán pro kompatibilitu s nativními nástroji.

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

Kontrolujte, jak se vypořádat s přetečením násobení a dělením nulou. --trap nebo --no-break (což jsou synonyma) používají výjimku pasti (a fungují pouze pro Instruction Set Architecture úrovně 2 a vyšší); --break nebo --no-trap (také synonyma a výchozí) mají výjimku přestávky.

-n

Při použití této možnosti as vydá varování pokaždé, když vygeneruje instrukci nop z makra.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor LoongArch.

-fpic
-fPIC

Vygenerujte kód nezávislý na pozici

-fno-pic

Negenerovat kód nezávislý na pozici (výchozí)

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor Meta.

"-mcpu=metac11"

Vygenerujte kód pro Meta 1.1.

"-mcpu=metac12"

Vygenerujte kód pro Meta 1.2.

"-mcpu=metac21"

Vygenerujte kód pro Meta 2.1.

"-mfpu=metac21"

Povolit kódu používat hardware FPU Meta 2.1.

Dokumentaci možností specifických pro MMIX naleznete na informačních stránkách.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor NDS32.

"-O1"

Optimalizujte pro výkon.

"-Os"

Optimalizujte pro prostor.

"-EL"

Vytvářejte malý endian datový výstup.

"-EB"

Vytvářejte malý endian datový výstup.

"-mpic"

Generovat PIC.

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

Potlačit relaxaci fp-as-gp pro tento soubor.

"-mb2bb-relax"

Optimalizace větví back-to-back.

"-mno-all-relax"

U tohoto souboru potlačte veškerou relaxaci.

"-march=<arch name>"

Sestavte pro architekturu , což může být v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s.

"-mbaseline=<baseline>"

Sestavte pro základní linii , což může být v2, v3, v3m.

"-mfpu-freg=FREG"

Zadejte konfiguraci FPU.

"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"

Zadejte verzi abi může být v1, v2, v2fp, v2fpp.

"-m[no-]mac"

Povolit/zakázat podporu instrukcí násobení.

"-m[no-]div"

Povolit/zakázat podporu pokynů pro rozdělení.

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

Povolit/zakázat 16bitové rozšíření

"-m[no-]dx-regs"

Povolit/zakázat registry d0/d1

"-m[no-]perf-ext"

Povolit/zakázat rozšíření výkonu

"-m[no-]perf2-ext"

Povolit/zakázat rozšíření výkonu 2

"-m[no-]string-ext"

Povolit/zakázat rozšíření řetězce

"-m[no-]reduced-regs"

Možnost povolit/zakázat konfiguraci omezeného registru (GPR16).

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

Povolit/zakázat rozšíření AUDIO ISA

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

Povolit/zakázat rozšíření FPU SP

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

Povolit/zakázat rozšíření FPU DP

"-m[no-]fpu-fma"

Povolit/zakázat FPU tavené-multiply-add instrukce

"-mall-ext"

Zapněte podporu všech rozšíření a pokynů

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor PowerPC.

-a32

Vygenerujte ELF32 nebo XCOFF32.

-a64

Vygenerujte ELF64 nebo XCOFF64.

-K PIC

Nastavte EF_PPC_RELOCATABLE_LIB v příznakech ELF.

-mpwrx | -mpwr2

Vygenerujte kód pro POWER/2 (RIOS2).

-mpwr

Vygenerovat kód pro POWER (RIOS1)

-m601

Vygenerujte kód pro PowerPC 601.

-mppc, -mppc32, -m603, -m604

Vygenerujte kód pro PowerPC 603/604.

-m403, -m405

Vygenerujte kód pro PowerPC 403/405.

-m440

Vygenerujte kód pro PowerPC 440. BookE a nějaké instrukce 405.

-m464

Vygenerujte kód pro PowerPC 464.

-m476

Vygenerujte kód pro PowerPC 476.

-m7400, -m7410, -m7450, -m7455

Vygenerujte kód pro PowerPC 7400/7410/7450/7455.

-m750cl, -mgekko, -mbroadway

Vygenerujte kód pro PowerPC 750CL/Gekko/Broadway.

-m821, -m850, -m860

Vygenerujte kód pro PowerPC 821/850/860.

-mppc64, -m620

Vygenerujte kód pro PowerPC 620/625/630.

-me200z2, -me200z4

Vygenerujte kód pro varianty e200, e200z2 s LSP, e200z4 s SPE.

-me300

Vygenerujte kód pro rodinu PowerPC e300.

-me500, -me500x2

Vygenerujte kód pro komplex jádra Motorola e500.

-me500mc

Vygenerujte kód pro základní komplex Freescale e500mc.

-me500mc64

Vygenerujte kód pro komplex jádra Freescale e500mc64.

-me5500

Vygenerujte kód pro základní komplex Freescale e5500.

-me6500

Vygenerujte kód pro základní komplex Freescale e6500.

-mlsp

Povolit instrukce LSP. (Zakáže SPE a SPE2.)

-mspe

Vygenerujte kód pro instrukce Motorola SPE. (Zakáže LSP.)

-mspe2

Vygenerujte kód pro instrukce Freescale SPE2. (Zakáže LSP.)

-mtitan

Vygenerujte kód pro komplex jádra AppliedMicro Titan.

-mppc64bridge

Vygenerujte kód pro PowerPC 64, včetně bridge insns.

-mbooke

Vygenerujte kód pro 32bitovou BookE.

-ma2

Vygenerujte kód pro architekturu A2.

-maltivec

Vygenerujte kód pro procesory pomocí instrukcí AltiVec.

-mvle

Vygenerujte kód pro instrukce Freescale PowerPC VLE.

-mvsx

Generujte kód pro procesory s vektorovými (VSX) instrukcemi.

-mhtm

Vygenerujte kód pro procesory s instrukcemi hardwarové transakční paměti.

-mpower4, -mpwr4

Vygenerujte kód pro architekturu Power4.

-mpower5, -mpwr5, -mpwr5x

Vygenerujte kód pro architekturu Power5.

-mpower6, -mpwr6

Vygenerujte kód pro architekturu Power6.

-mpower7, -mpwr7

Vygenerujte kód pro architekturu Power7.

-mpower8, -mpwr8

Vygenerujte kód pro architekturu Power8.

-mpower9, -mpwr9

Vygenerujte kód pro architekturu Power9.

-mpower10, -mpwr10

Vygenerujte kód pro architekturu Power10.

-mfuture

Vygenerujte kód pro „budoucí“ architekturu.

-mcell
-mcell

Vygenerujte kód pro architekturu Cell Broadband Engine.

-mcom

Vygenerujte kód společné instrukce Power/PowerPC.

-many

Generujte kód pro jakoukoli architekturu (PWR/PWRX/PPC).

-mregnames

Povolit symbolické názvy pro registry.

-mno-regnames

Nepovolovat symbolické názvy pro registry.

-mrelocatable

Podpora pro volbu -mrelocatable GCC.

-mrelocatable-lib

Podpora pro volbu -mrelocatable-lib GCC.

-memb

Nastavte bit PPC_EMB v příznacích ELF.

-mlittle, -mlittle-endian, -le

Vygenerujte kód pro stroj little endian.

-mbig, -mbig-endian, -be

Vygenerujte kód pro stroj big endian.

-msolaris

Vygenerujte kód pro Solaris.

-mno-solaris

Negenerujte kód pro Solaris.

-nops=count

Pokud direktiva zarovnání vloží více než count nops, umístěte větev na začátek, abyste vynechali provádění nops.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor RISC-V.

-fpic
-fPIC

Vygenerujte kód nezávislý na pozici

-fno-pic

Negenerovat kód nezávislý na pozici (výchozí)

-march=ISA

Vyberte základní isa podle specifikace ISA. Například -march=rv32ima. Pokud tato možnost a atributy architektury nejsou nastaveny, pak assembler zkontroluje výchozí nastavení konfigurace --with-arch=ISA.

-misa-spec=ISAspec

Vyberte výchozí verzi isa spec. Pokud verze ISA není nastavena pomocí -march, pak assembler pomůže nastavit verzi podle výchozí zvolené specifikace. Pokud tato možnost není nastavena, pak assembler zkontroluje výchozí nastavení konfigurace --with-isa-spec=ISAspec.

-mpriv-spec=PRIVspec

Vyberte verzi privilegované specifikace. O tom, zda je CSR platná či nikoli, se můžeme rozhodnout podle zvolené specifikace. Pokud tato možnost a atributy oprávnění nejsou nastaveny, pak assembler zkontroluje výchozí nastavení konfigurace --with-priv-spec=PRIVspec.

-mabi=ABI

Vybere ABI, což je buď ilp32 nebo lp64, volitelně následované f, d nebo q pro označení konvence volání s jednoduchou přesností, dvojitou přesností nebo čtyřnásobnou přesností, nebo žádné pro označení konvence volání s měkkým plovoucí čárkou. . Také za ilp32 může volitelně následovat e pro označení RVE ABI, které je vždy soft-float.

-mrelax

Využijte uvolnění linkerů ke snížení počtu instrukcí potřebných k materializaci adres symbolů. (výchozí)

-mno-relax

Nedělejte relaxaci linkeru.

-march-attr

Pokud nejsou nastaveny direktivy .attribute, vygenerujte výchozí obsah pro sekci atributů riscv elf. Tato část se používá k zaznamenání informací, které linker nebo runtime loader potřebuje ke kontrole kompatibility. Tyto informace zahrnují řetězec ISA, požadavek na zarovnání zásobníku, nezarovnané přístupy k paměti a hlavní, vedlejší a revizní verzi privilegované specifikace.

-mno-arch-attr

Negenerujte výchozí sekci atributu riscv elf, pokud nejsou nastaveny direktivy .attribute.

-mcsr-check

Povolte kontrolu CSR pro CRS závislé na ISA a CSR pouze pro čtení. CSR závislé na ISA jsou platné pouze v případě, že je nastaven konkrétní ISA. CSR pouze pro čtení nelze zapsat pomocí instrukcí CSR.

-mno-csr-check

Neprovádějte kontrolu CSR.

-mlittle-endian

Vygenerujte kód pro stroj little endian.

-mbig-endian

Vygenerujte kód pro stroj big endian.

Viz informační stránky pro dokumentaci specifických možností RX.

Následující možnosti jsou dostupné, když je nakonfigurován pro rodinu procesorů s390.

-m31
-m64

Vyberte velikost slova, buď 31/32 bitů nebo 64 bitů.

-mesa
-mzarch

Vyberte režim architektury, buď Enterprise System Architecture (esa) nebo režim z/Architecture (zarch).

-march=processor

Určete, která varianta procesoru s390 je cílová, g5 (nebo arch3), g6, z900 (nebo arch5), z990 (nebo arch6), z9-109, z9-ec ( nebo arch7), z10 (nebo arch8), z196 (nebo arch9) , zEC12 (nebo arch10), z13 (nebo arch11), z14 ( nebo arch12), z15 (nebo arch13) nebo z16 (nebo arch14 ).

-mregnames
-mno-regnames

Povolit nebo zakázat symbolické názvy pro registry.

-mwarn-areg-zero

Varovat vždy, když byl zadán operand pro základní nebo indexový registr, ale vyhodnocen jako nula.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor TMS320C6000.

-march=arch

Povolit (pouze) instrukce z architektury arch. Ve výchozím nastavení jsou všechny pokyny povoleny. Jsou přijímány následující hodnoty arch: c62x, c64x, c64x+, c67x , c67x+, c674x.

-mdsbt
-mno-dsbt

Možnost -mdsbt způsobí, že assembler vygeneruje atribut Tag_ABI_DSBT s hodnotou 1, což znamená, že kód používá adresování DSBT. Možnost -mno-dsbt, výchozí, způsobí, že značka bude mít hodnotu 0, což znamená, že kód nepoužívá adresování DSBT. Linker vydá varování, pokud jsou vzájemně propojeny objekty různého typu (DSBT a non-DSBT).

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

Možnost -mpid= způsobí, že assembler vygeneruje atribut Tag_ABI_PID s hodnotou udávající formu adresování dat, kterou kód používá. -mpid=no, výchozí, označuje adresování dat závislé na poloze, -mpid=near označuje adresování nezávislé na poloze s přístupy GOT pomocí adresování blízkých DP a -mpid=far označuje adresování nezávislé na poloze s přístupy GOT pomocí vzdáleného adresování DP. Pokud jsou objekty sestavené s různými nastaveními této možnosti propojeny, linker vydá varování.

-mpic
-mno-pic

Možnost -mpic způsobí, že assembler vygeneruje atribut Tag_ABI_PIC s hodnotou 1, což znamená, že kód používá adresování kódu nezávislé na pozici, -mno Volba -pic, výchozí, způsobí, že tag bude mít hodnotu 0, což znamená adresování kódu závislé na poloze. Linker vydá varování, pokud jsou vzájemně propojeny objekty různého typu (závislé na poloze a nezávislé na poloze).

-mbig-endian
-mlittle-endian

Vygenerujte kód pro zadanou endianness. Výchozí hodnota je little-endian.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor TILE-Gx.

-m32 | -m64

Vyberte velikost slova, buď 32 bitů nebo 64 bitů.

-EB | -EL

Vyberte endianness, buď big-endian (-EB) nebo little-endian (-EL).

Následující možnost je k dispozici, když je nakonfigurována pro procesor Visium.

-mtune=arch

Tato možnost určuje cílovou architekturu. Pokud dojde k pokusu sestavit instrukci, která se na cílové architektuře nevykoná, assembler vydá chybovou zprávu. Jsou rozpoznány následující názvy: mcm24 mcm gr5 gr6

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor Xtensa.

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

Kontrolujte léčbu doslovných bazénů. Výchozí hodnota je --no-text-section-literals, která umístí literály do samostatných sekcí ve výstupním souboru. To umožňuje umístit doslovný fond do datové paměti RAM/ROM. Pomocí --text-section-literals jsou literály v textové sekci proloženy, aby byly co nejblíže svým odkazům. To může být nutné pro velké soubory sestavení, kde by literály jinak byly mimo rozsah instrukcí L32R v textové sekci. Literály jsou seskupeny do skupin podle direktiv .literal_position nebo předchozích pokynů ENTRY. Tyto volby ovlivní pouze literály odkazované prostřednictvím instrukcí L32R relativních pro PC; literály pro absolutní režim instrukce L32R jsou zpracovávány samostatně.

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

Kontrolujte léčbu doslovných bazénů. Výchozí hodnota je --no-auto-litpools, která při absenci --text-section-literals umístí literály do samostatných sekcí ve výstupním souboru. To umožňuje umístit doslovný fond do datové paměti RAM/ROM. U --auto-litpools jsou literály v textové sekci roztroušeny, aby byly co nejblíže svým odkazům, explicitní direktivy .literal_position nejsou vyžadovány. To může být nutné u velmi rozsáhlých funkcí, kde jednotlivý fond literálů na začátku funkce nemusí být dosažitelný pomocí instrukcí L32R na konci. Tyto volby ovlivní pouze literály odkazované prostřednictvím instrukcí L32R relativních pro PC; literály pro absolutní režim instrukce L32R jsou zpracovávány samostatně. Při použití společně s --text-section-literals má přednost --auto-litpools.

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

Sdělte assembleru, zda instrukce L32R používají absolutní nebo PC-relativní adresování. Pokud procesor obsahuje možnost absolutního adresování, výchozí je použití absolutních přemístění L32R. Jinak lze použít pouze přemístění L32R relativní k počítači.

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

Povolte nebo zakažte automatické zarovnání, abyste snížili penalizaci za větvení s určitými náklady na velikost kódu. Tato optimalizace je ve výchozím nastavení povolena. Všimněte si, že assembler vždy zarovná instrukce jako LOOP, které mají pevné požadavky na zarovnání.

--longcalls | --no-longcalls

Povolte nebo zakažte transformaci instrukcí volání, abyste umožnili volání přes větší rozsah adres. Tato možnost by se měla použít, když mohou být cíle volání potenciálně mimo dosah. Může to snížit velikost kódu i výkon, ale linker může obecně optimalizovat zbytečnou režii, když volání skončí v dosahu. Výchozí hodnota je --no-longcalls.

--transform | --no-transform

Povolí nebo zakáže všechny asemblerové transformace instrukcí Xtensa, včetně relaxace a optimalizace. Výchozí hodnota je --transform; --no-transform by se mělo používat pouze ve výjimečných případech, kdy pokyny musí přesně odpovídat specifikaci ve zdroji sestavení. Použití --no-transform způsobí, že operandy instrukce mimo rozsah budou chyby.

--rename-section oldname=newname

Přejmenujte sekci oldname na newname. Tuto možnost lze použít vícekrát k přejmenování více sekcí.

--trampolines | --no-trampolines

Povolte nebo zakažte transformaci instrukcí skoku, abyste umožnili skoky přes větší rozsah adres. Tato možnost by měla být použita, když cíle skoku mohou být potenciálně mimo dosah. Pokud takové skoky neexistují, tato možnost neovlivňuje velikost kódu ani výkon. Výchozí nastavení je --trampolíny.

--abi-windowed | --abi-call0

Vyberte značku ABI zapsanou do sekce .xtensa.info. Značka ABI označuje ABI kódu sestavy. Při pokusu o propojení souborů objektů s nekonzistentními značkami ABI vydá linker varování. Výchozí ABI je zvoleno konfigurací jádra Xtensa.

Následující možnosti jsou dostupné, když je nakonfigurován pro procesor Z80.

@kapitola Závislé funkce Z80

Možnosti příkazového řádku

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

Tato volba určuje cílový procesor. Assembler vydá chybovou zprávu, pokud je učiněn pokus sestavit instrukci, která se na cílovém procesoru nevykoná. Jsou rozpoznány následující názvy procesorů: z80, z180, ez80, gbz80, z80n, r800. Kromě základní instrukční sady lze assembleru říci, aby přijal některé mnemotechnické pomůcky rozšíření. Například -march=z180+sli+infc rozšiřuje z180 o instrukce SLI a IN F,(C) . V současnosti jsou podporována následující rozšíření: full (všechny známé instrukce), adl (výchozí režim ADL CPU, pouze eZ80), sli (instrukce známé jako SLI, SLL nebo SL1), xyhl (instrukce s polovinami indexových registrů: IXL , IXH, IYL, IYH), xdcb (pokyny jako RotOp (II +d),R a BitOp n,(II+d),R), infc (pokyn IN F,(C) nebo IN (C)), outc0 (instrukce OUT (C),0). Všimněte si, že namísto rozšiřování základní instrukční sady ruší mnemotechnika rozšíření začínající na - příslušnou funkci: -march=z80-full+xyhl nejprve odstraní všechna výchozí rozšíření a přidá podpora indexových registrů pouze poloviční. Pokud tato volba není specifikována, předpokládá se -march=z80+xyhl+infc.

-local-prefix=prefix

Označte všechny štítky se zadanou předponou jako místní. Ale takové označení může být v kódu explicitně označeno globálně. Tato volba nemění výchozí místní předponu štítku .L, pouze přidává novou.

-colonless

Přijměte štítky bez dvojtečky. Všechny symboly na začátku řádku jsou považovány za štítky.

-sdcc

Přijměte kód assembleru vytvořený SDCC.

-fp-s=FORMAT

Formát čísel s jedinou přesností s plovoucí desetinnou čárkou. Výchozí: ieee754 (32 bitů).

-fp-d=FORMAT

Formát čísel s plovoucí desetinnou čárkou s dvojitou přesností. Výchozí: ieee754 (64 bitů).

VIZ TAKÉ

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

AUTORSKÁ PRÁVA

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

Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation License, verze 1.3 nebo kterékoli pozdější verze publikované Free Software Foundation; bez neměnných sekcí, bez textů na přední straně obálky a bez textů na zadní straně obálky. Kopie licence je součástí sekce nazvané GNU Free Documentation License.