AS - ο φορητός GNU assembler.
ΣΥΝΤΑΞΗ
as [-a[cdghilns][=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] [--gsframe=[no|yes]]
[--hash-size=N]
[--help] [--target-help]
[--info] [--no-info]
[-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]
[--scfi=experimental]
[--sectname-subst]
[--size-check=[error|warning]]
[--statistics]
[-v] [--verbose]
[-version] [--version]
[-W] [--no-warn] [--warn] [--fatal-warnings]
[-w] [-x]
[-Z] [@FILE]
[target-options]
[--|files ...]
ΣΤΟΧΟΣ
Επιλογές στόχου AArch64: [-EB|-EL] [-mabi=ABI]
Επιλογές στόχου Alpha: [-mcpu] [-mdebug | -no-mdebug] [-replace | -noreplace] [-relax] [-g] [-Gsize] [-F] [-32addr]
Επιλογές στόχου ARC: [-mcpu=cpu] [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS] [-mcode-density] [-mrelax] [-EB|-EL]
Επιλογές στόχου 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]
Επιλογές στόχου Blackfin: [-mcpu=processor[-sirevision]] [-mfdpic] [-mno-fdpic] [-mnopic]
Επιλογές στόχου BPF: [-EL] [-EB]
Επιλογές στόχου CRIS: [--underscore | --no-underscore] [--pic] [-N] [--emulation=criself | --emulation=crisaout] [--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]
Επιλογές στόχου 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]
Επιλογές στόχου D10V: [-O]
Επιλογές στόχου D30V: [-O|-n|-N]
Επιλογές στόχου EPIPHANY: [-mepiphany|-mepiphany16]
Επιλογές στόχου H8/300: [-h-tick-hex]
Επιλογές στόχου i386: [--32|--x32|--64] [-n] [-march=CPU[+EXTENSION...]] [-mtune=CPU]
Επιλογές στόχου 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]
Επιλογές στόχου IP2K: [-mip2022|-mip2022ext]
Επιλογές στόχου M32C: [-m32c|-m16c] [-relax] [-h-tick-hex]
Επιλογές στόχου M32R: [--m32rx|--[no-]warn-explicit-parallel-conflicts| --W[n]p]
Επιλογές στόχου M680X0: [-l] [-m68000|-m68010|-m68020|...]
Επιλογές στόχου 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]
Επιλογές στόχου MCORE: [-jsri2bsr] [-sifilter] [-relax] [-mcpu=[210|340]]
Επιλογές στόχου Meta: [-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] Επιλογές στόχου MICROBLAZE: [-mlittle-endian] [-mbig-endian]
Επιλογές στόχου 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] [-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]
Επιλογές στόχου MMIX: [--fixed-special-register-names] [--globalize-symbols] [--gnu-syntax] [--relax] [--no-predefined-symbols] [--no-expand] [--no-merge-gregs] [-x] [--linker-allocated-gregs]
Επιλογές στόχου 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]
Επιλογές στόχου PDP11: [-mpic|-mno-pic] [-mall] [-mno-extensions] [-mextension|-mno-extension] [-mcpu] [-mmachine]
Επιλογές στόχου picoJava: [-mb|-me]
Επιλογές στόχου 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] [-nops=count]
Επιλογές στόχου PRU: [-link-relax] [-mnolink-relax] [-mno-warn-regname-label]
Επιλογές στόχου RISC-V: [-fpic|-fPIC|-fno-pic] [-march=ISA|Profiles|Profiles_ISA] [-mabi=ABI] [-mlittle-endian|-mbig-endian]
Επιλογές στόχου RL78: [-mg10] [-m32bit-doubles|-m64bit-doubles]
Επιλογές στόχου RX: [-mlittle-endian|-mbig-endian] [-m32bit-doubles|-m64bit-doubles] [-muse-conventional-section-names] [-msmall-data-limit] [-mpid] [-mrelax] [-mint-register=number] [-mgcc-abi|-mrx-abi]
Επιλογές στόχου s390: [-m31|-m64] [-mesa|-mzarch] [-march=CPU] [-mregnames|-mno-regnames] [-mwarn-areg-zero] [-mwarn-regtype-mismatch=strict -mwarn-regtype-mismatch=relaxed -mwarn-regtype-mismatch=no -mno-warn-regtype-mismatch]
Επιλογές στόχου SCORE: [-EB][-EL][-FIXDD][-NWARN] [-SCORE5][-SCORE5U][-SCORE7][-SCORE3] [-march=score7][-march=score3] [-USE_R1][-KPIC][-O0][-G num][-V]
Επιλογές στόχου 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]
Επιλογές στόχου TIC54X:
[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
[-merrors-to-file
Επιλογές στόχου TIC6X: [-march=arch] [-mbig-endian|-mlittle-endian] [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far] [-mpic|-mno-pic]
Επιλογές στόχου TILE-Gx: [-m32|-m64][-EB][-EL]
Επιλογές στόχου Visium: [-mtune=arch]
Επιλογές στόχου 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]
Επιλογές στόχου Z80: [-march=CPU[-EXT][+EXT]] [-local-prefix=PREFIX] [-colonless] [-sdcc] [-fp-s=FORMAT] [-fp-d=FORMAT]
ΠΕΡΙΓΡΑΦΗ
Το GNU as είναι στην πραγματικότητα μια οικογένεια συναρμολογητών. Εάν έχετε χρησιμοποιήσει (ή χρησιμοποιήσατε) τον συναρμολογητή GNU σε μια αρχιτεκτονική, θα πρέπει να βρείτε ένα αρκετά παρόμοιο περιβάλλον όταν τον χρησιμοποιείτε σε μια άλλη αρχιτεκτονική. Κάθε έκδοση έχει πολλά κοινά με τις άλλες, συμπεριλαμβανομένων των μορφών αρχείων αντικειμένων, των περισσότερων οδηγιών συναρμολόγησης (που συχνά ονομάζονται ψευδο-εντολές) και της σύνταξης του συναρμολογητή.
Το as προορίζεται κυρίως για τη συναρμολόγηση της εξόδου του μεταγλωττιστή GNU C "gcc" για χρήση από τον συνδετή "ld". Ωστόσο, προσπαθήσαμε να κάνουμε το as να συναρμολογεί σωστά οτιδήποτε θα συναρμολογούσαν άλλοι συναρμολογητές για την ίδια μηχανή. Οποιεσδήποτε εξαιρέσεις είναι ρητά τεκμηριωμένες. Αυτό δεν σημαίνει ότι το as χρησιμοποιεί πάντα την ίδια σύνταξη με έναν άλλο συναρμολογητή για την ίδια αρχιτεκτονική. Για παράδειγμα, γνωρίζουμε για διάφορες ασύμβατες εκδόσεις της σύνταξης της γλώσσας συναρμολόγησης 680x0.
Κάθε φορά που εκτελείτε το as, συναρμολογεί ακριβώς ένα αρχείο προέλευσης. Το αρχείο προέλευσης αποτελείται από ένα ή περισσότερα αρχεία. (Η τυπική είσοδος είναι επίσης ένα αρχείο.)
Δίνετε στο as μια γραμμή εντολών που έχει μηδέν ή περισσότερα ονόματα αρχείων εισόδου. Τα αρχεία εισόδου διαβάζονται (από το αριστερό όνομα αρχείου προς τα δεξιά). Ένα όρισμα γραμμής εντολών (σε οποιαδήποτε θέση) που δεν έχει ειδική σημασία θεωρείται όνομα αρχείου εισόδου.
Εάν δώσετε στο as κανένα όνομα αρχείου, προσπαθεί να διαβάσει ένα αρχείο εισόδου από την τυπική είσοδο του as, η οποία είναι συνήθως το τερματικό σας. Ίσως χρειαστεί να πληκτρολογήσετε ctl-D για να ενημερώσετε το as ότι δεν υπάρχει άλλο πρόγραμμα για συναρμολόγηση.
Χρησιμοποιήστε το -- εάν χρειάζεται να ορίσετε ρητά το αρχείο τυπικής εισόδου στη γραμμή εντολών σας.
Εάν η πηγή είναι κενή, το as παράγει ένα μικρό, κενό αρχείο αντικειμένου.
Το as μπορεί να γράψει προειδοποιήσεις και μηνύματα σφάλματος στο αρχείο τυπικής εξόδου (συνήθως το τερματικό σας). Αυτό δεν θα πρέπει να συμβαίνει όταν ένας μεταγλωττιστής εκτελεί το as αυτόματα. Οι προειδοποιήσεις αναφέρουν μια υπόθεση που έγινε, έτσι ώστε το as να μπορούσε να συνεχίσει τη συναρμολόγηση ενός ελαττωματικού προγράμματος. Τα σφάλματα αναφέρουν ένα σοβαρό πρόβλημα που σταματά τη συναρμολόγηση.
Εάν καλείτε το as μέσω του μεταγλωττιστή GNU C, μπορείτε να χρησιμοποιήσετε την επιλογή -Wa για να περάσετε ορίσματα στον συναρμολογητή. Τα ορίσματα του συναρμολογητή πρέπει να διαχωρίζονται μεταξύ τους (και από το -Wa) με κόμματα. Για παράδειγμα:
gcc -c -g -O -Wa,-alh,-L file.c
Αυτό περνά δύο επιλογές στον συναρμολογητή: -alh (εκδίδει μια λίστα στην τυπική έξοδο με πηγή υψηλού επιπέδου και συναρμολόγηση) και -L (διατηρεί τα τοπικά σύμβολα στον πίνακα συμβόλων).
Συνήθως δεν χρειάζεται να χρησιμοποιήσετε αυτόν τον μηχανισμό -Wa, επειδή πολλές επιλογές γραμμής εντολών του μεταγλωττιστή περνιούνται αυτόματα στον συναρμολογητή από τον μεταγλωττιστή. (Μπορείτε να καλέσετε το πρόγραμμα οδήγησης του μεταγλωττιστή GNU με την επιλογή -v για να δείτε ακριβώς ποιες επιλογές περνά σε κάθε φάση της μεταγλώττισης, συμπεριλαμβανομένου του συναρμολογητή.)
ΕΠΙΛΟΓΕΣ
@file
Διαβάστε τις επιλογές γραμμής εντολών από το αρχείο. Οι επιλογές που διαβάζονται εισάγονται στη θέση της αρχικής επιλογής @file. Εάν το αρχείο δεν υπάρχει ή δεν μπορεί να διαβαστεί, τότε η επιλογή θα αντιμετωπιστεί κυριολεκτικά και δεν θα αφαιρεθεί.
Οι επιλογές στο αρχείο διαχωρίζονται με κενά. Ένας χαρακτήρας κενού μπορεί να συμπεριληφθεί σε μια επιλογή, περιβάλλοντας ολόκληρη την επιλογή είτε με απλά είτε με διπλά εισαγωγικά. Οποιοσδήποτε χαρακτήρας (συμπεριλαμβανομένης της κάθετης γραμμής) μπορεί να συμπεριληφθεί, θέτοντας τον χαρακτήρα που θα συμπεριληφθεί με κάθετη γραμμή. Το αρχείο μπορεί να περιέχει επιπλέον επιλογές @file. Οποιεσδήποτε τέτοιες επιλογές θα υποβληθούν σε επεξεργασία αναδρομικά.
-a[cdghilmns]
Ενεργοποιήστε τις καταχωρήσεις, με διάφορους τρόπους:
-ac παραλείψτε τις ψευδείς συνθήκες
-ad παραλείψτε τις εντολές αποσφαλμάτωσης
-ag συμπεριλάβετε γενικές πληροφορίες, όπως η έκδοση και οι επιλογές που έχουν περαστεί
-ah συμπεριλάβετε την πηγή υψηλού επιπέδου
-al συμπεριλάβετε τη γλώσσα συναρμολόγησης
-ali
συμπεριλάβετε τη γλώσσα συναρμολόγησης με ginsn
-am συμπεριλάβετε τις επεκτάσεις μακροεντολών
-an παραλείψτε την επεξεργασία φορμών
-as συμπεριλάβετε τα σύμβολα
=file
ορίστε το όνομα του αρχείου καταγραφής
Μπορείτε να συνδυάσετε αυτές τις επιλογές. για παράδειγμα, χρησιμοποιήστε το -aln για καταχώρηση συναρμολόγησης χωρίς επεξεργασία φορμών. Η επιλογή =file, εάν χρησιμοποιηθεί, πρέπει να είναι η τελευταία. Από μόνη της, το -a προεπιλέγει τις τιμές -ahls.
--alternate
Ξεκινήστε σε εναλλακτική λειτουργία μακροεντολών.
--compress-debug-sections
Συμπιέστε τις ενότητες αποσφαλμάτωσης DWARF χρησιμοποιώντας το zlib με το SHF_COMPRESSED από το ABI ELF. Το προκύπτον αρχείο αντικειμένου ενδέχεται να μην είναι συμβατό με παλαιότερους συνδετήρες και βοηθητικά προγράμματα αρχείων αντικειμένων. Σημειώστε ότι εάν η συμπίεση θα έκανε μια δεδομένη ενότητα μεγαλύτερη, τότε δεν συμπιέζεται.
--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
--compress-debug-sections=zstd
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο συμπιέζονται οι ενότητες αποσφαλμάτωσης DWARF. Η επιλογή --compress-debug-sections=none είναι ισοδύναμη με την --nocompress-debug-sections. Οι επιλογές --compress-debug-sections=zlib και --compress-debug-sections=zlib-gabi είναι ισοδύναμες με την --compress-debug-sections. Η επιλογή --compress-debug-sections=zlib-gnu συμπιέζει τις ενότητες αποσφαλμάτωσης DWARF χρησιμοποιώντας την απαρχαιωμένη μορφή zlib-gnu. Οι ενότητες αποσφαλμάτωσης μετονομάζονται ώστε να ξεκινούν με .zdebug. Η επιλογή --compress-debug-sections=zstd συμπιέζει τις ενότητες αποσφαλμάτωσης DWARF χρησιμοποιώντας το zstd. Σημειώστε ότι εάν η συμπίεση θα έκανε πραγματικά μια ενότητα μεγαλύτερη, τότε δεν συμπιέζεται ούτε μετονομάζεται.
--nocompress-debug-sections
Μην συμπιέζετε τις ενότητες αποσφαλμάτωσης DWARF. Αυτό είναι συνήθως η προεπιλογή για όλους τους στόχους εκτός από τους x86/x86_64, αλλά μια επιλογή χρόνου διαμόρφωσης μπορεί να χρησιμοποιηθεί για να αντικατασταθεί αυτό.
-D Ενεργοποιήστε την αποσφαλμάτωση σε συγκεκριμένες διεπαφές-γέφυρες στόχου, εάν υποστηρίζεται. Διαφορετικά, αγνοείται. Ακόμη και αν αγνοηθεί, αυτή η επιλογή γίνεται δεκτή για λόγους συμβατότητας σεναρίων με κλήσεις σε άλλους μεταγλωττιστές.
--debug-prefix-map old=new
Κατά τη συναρμολόγηση αρχείων στον κατάλογο old, καταγράψτε τις πληροφορίες αποσφαλμάτωσης που τις περιγράφουν, ως εάν βρίσκονταν στον κατάλογο new.
--defsym sym=value
Ορίστε το σύμβολο sym στην τιμή value πριν από τη συναρμολόγηση του αρχείου εισόδου. Η τιμή value πρέπει να είναι μια ακέραια σταθερά. Όπως και στην C, ένα αρχικό 0x υποδηλώνει μια δεκαεξαδική τιμή και ένα αρχικό 0 υποδηλώνει μια οκταδική τιμή. Η τιμή του συμβόλου μπορεί να αντικατασταθεί μέσα σε ένα αρχείο προέλευσης μέσω της χρήσης μιας ψευδο-εντολής ".set".
--dump-config
Εμφανίζει τον τρόπο με τον οποίο έχει διαμορφωθεί ο μεταγλωττιστής και, στη συνέχεια, εξέρχεται.
--elf-stt-common=no
--elf-stt-common=yes
Αυτές οι επιλογές ελέγχουν εάν ο μεταγλωττιστής ELF θα δημιουργήσει κοινά σύμβολα με τον τύπο "STT_COMMON". Η προεπιλογή μπορεί να ελεγχθεί με μια επιλογή χρόνου διαμόρφωσης --enable-elf-stt-common.
--emit-local-absolute
Εκπέμπει ακόμη και προκαθορισμένα (τοπικά) απόλυτα σύμβολα στον εξερχόμενο πίνακα συμβόλων. Σημειώστε ότι αυτό δεν είναι ακριβώς το αντίθετο του --strip-local-absolute.
--emulation=name
Εάν ο μεταγλωττιστής είναι διαμορφωμένος ώστε να υποστηρίζει διαφορετικές διαμορφώσεις στόχων, αυτή η επιλογή μπορεί να χρησιμοποιηθεί για να επιλεγεί η επιθυμητή μορφή.
-f "fast"---παραλείπει την προεπεξεργασία κενού χώρου και σχολίων (υποθέτει ότι η πηγή είναι έξοδος μεταγλωττιστή).
-g
--gen-debug
Δημιουργεί πληροφορίες εντοπισμού σφαλμάτων για κάθε γραμμή πηγής του μεταγλωττιστή, χρησιμοποιώντας τη μορφή εντοπισμού σφαλμάτων που προτιμά ο στόχος. Αυτό σημαίνει επί του παρόντος είτε STABS, ECOFF είτε DWARF2. Όταν η μορφή εντοπισμού σφαλμάτων είναι DWARF, μια ενότητα ".debug_info" και ".debug_line" εκπέμπεται μόνο όταν το αρχείο συναρμολόγησης δεν παράγει μια τέτοια ενότητα.
--gstabs
Δημιουργεί πληροφορίες εντοπισμού σφαλμάτων stabs για κάθε γραμμή πηγής του μεταγλωττιστή. Αυτό μπορεί να βοηθήσει στην αποσφαλμάτωση του κώδικα συναρμολόγησης, εάν το πρόγραμμα αποσφαλμάτωσης μπορεί να το χειριστεί.
--gstabs+
Δημιουργεί πληροφορίες εντοπισμού σφαλμάτων stabs για κάθε γραμμή πηγής του μεταγλωττιστή, με επεκτάσεις GNU που πιθανότατα μόνο το gdb μπορεί να χειριστεί και που θα μπορούσαν να προκαλέσουν σφάλμα σε άλλα προγράμματα αποσφαλμάτωσης ή να αρνηθούν την ανάγνωση του προγράμματός σας. Αυτό μπορεί να βοηθήσει στην αποσφαλμάτωση του κώδικα συναρμολόγησης. Επί του παρόντος, η μόνη επέκταση GNU είναι η θέση του τρέχοντος καταλόγου εργασίας κατά τη στιγμή της συναρμολόγησης.
--gdwarf-2
Δημιουργεί πληροφορίες εντοπισμού σφαλμάτων DWARF2 για κάθε γραμμή πηγής του μεταγλωττιστή. Αυτό μπορεί να βοηθήσει στην αποσφαλμάτωση του κώδικα συναρμολόγησης, εάν το πρόγραμμα αποσφαλμάτωσης μπορεί να το χειριστεί. Σημειώστε---αυτή η επιλογή υποστηρίζεται μόνο από ορισμένους στόχους, όχι από όλους.
--gdwarf-3
Αυτή η επιλογή είναι η ίδια με την επιλογή --gdwarf-2, εκτός από το ότι επιτρέπει τη δυνατότητα δημιουργίας επιπλέον πληροφοριών εντοπισμού σφαλμάτων, σύμφωνα με την έκδοση 3 της προδιαγραφής DWARF. Σημείωση - η ενεργοποίηση αυτής της επιλογής δεν εγγυάται τη δημιουργία οποιωνδήποτε επιπλέον πληροφοριών, η επιλογή για το αν θα γίνει αυτό είναι ανά στόχο.
--gdwarf-4
Αυτή η επιλογή είναι η ίδια με την επιλογή --gdwarf-2, εκτός από το ότι επιτρέπει τη δυνατότητα δημιουργίας επιπλέον πληροφοριών εντοπισμού σφαλμάτων, σύμφωνα με την έκδοση 4 της προδιαγραφής DWARF. Σημείωση - η ενεργοποίηση αυτής της επιλογής δεν εγγυάται τη δημιουργία οποιωνδήποτε επιπλέον πληροφοριών, η επιλογή για το αν θα γίνει αυτό είναι ανά στόχο.
--gdwarf-5
Αυτή η επιλογή είναι η ίδια με την επιλογή --gdwarf-2, εκτός από το ότι επιτρέπει τη δυνατότητα δημιουργίας επιπλέον πληροφοριών εντοπισμού σφαλμάτων, σύμφωνα με την έκδοση 5 της προδιαγραφής DWARF. Σημείωση - η ενεργοποίηση αυτής της επιλογής δεν εγγυάται τη δημιουργία οποιωνδήποτε επιπλέον πληροφοριών, η επιλογή για το αν θα γίνει αυτό είναι ανά στόχο.
--gdwarf-sections
Αντί να δημιουργηθεί μια ενότητα .debug_line, δημιουργήστε μια σειρά από ενότητες .debug_line.foo, όπου το foo είναι το όνομα της αντίστοιχης ενότητας κώδικα. Για παράδειγμα, μια ενότητα κώδικα που ονομάζεται .text.func θα έχει τις πληροφορίες γραμμής αριθμού εντοπισμού σφαλμάτων DWARF στην ενότητα που ονομάζεται .debug_line.text.func. Εάν η ενότητα κώδικα ονομάζεται απλώς .text, τότε η ενότητα γραμμής εντοπισμού σφαλμάτων θα ονομάζεται ακόμη απλώς .debug_line χωρίς καμία κατάληξη.
--gdwarf-cie-version=version
Ελέγχει την έκδοση των Κοινών Εγγραφών Πληροφοριών DWARF (CIE) που θα δημιουργηθούν. Όταν αυτή η σημαία δεν καθορίζεται, η προεπιλογή είναι η έκδοση 1, αν και ορισμένοι στόχοι μπορούν να αλλάξουν αυτήν την προεπιλογή. Άλλες πιθανές τιμές για την έκδοση είναι 3 ή 4.
--generate-missing-build-notes=yes
--generate-missing-build-notes=no
Αυτές οι επιλογές ελέγχουν εάν ο μεταγλωττιστής ELF θα δημιουργήσει Σημειώσεις Χαρακτηριστικών Δημιουργίας GNU εάν δεν υπάρχουν στα δεδομένα εισόδου. Η προεπιλογή μπορεί να ελεγχθεί με την επιλογή διαμόρφωσης --enable-generate-build-notes.
--gsframe
--gsframe
--gsframe=no
--gsframe=yes
Δημιουργία τμήματος .sframe από οδηγίες CFI. Η ρητή επιλογή --gsframe=yes συμπεριφέρεται ίδια με την --gsframe. Η δημιουργία μπορεί να κατασταλεί με την --gsframe=no. Η προεπιλογή μπορεί να ελεγχθεί από μια επιλογή διαμόρφωσης --enable-default-sframe.
--hash-size N
Αγνοείται. Υποστηρίζεται για συμβατότητα γραμμής εντολών με άλλους μεταγλωττιστές.
--help
Εμφάνιση μιας περίληψης των επιλογών γραμμής εντολών και έξοδος.
--target-help
Εμφάνιση μιας περίληψης όλων των στοχευμένων επιλογών και έξοδος.
--info
Μην καταστέλλετε τα ενημερωτικά μηνύματα.
--no-info
Καταστέλλετε τα ενημερωτικά μηνύματα.
-I dir
Προσθέστε τον κατάλογο dir στη λίστα αναζήτησης για τις οδηγίες ".include".
-J Μην εμφανίζετε προειδοποιήσεις για υπερχείλιση υπογεγραμμένων.
-K Εμφάνιση προειδοποιήσεων όταν οι πίνακες διαφορών τροποποιούνται για μεγάλες αποστάσεις.
-L
--keep-locals
Διατηρήστε (στον πίνακα συμβόλων) τα τοπικά σύμβολα. Αυτά τα σύμβολα ξεκινούν με προθέματα τοπικών ετικετών ειδικά για το σύστημα, συνήθως .L για συστήματα ELF ή L για παραδοσιακά συστήματα a.out.
--listing-lhs-width=number
Ορίστε το μέγιστο πλάτος, σε λέξεις, της στήλης δεδομένων εξόδου για μια λίστα μεταγλωττιστή σε number.
--listing-lhs-width2=number
Ορίστε το μέγιστο πλάτος, σε λέξεις, της στήλης δεδομένων εξόδου για γραμμές συνέχειας σε μια λίστα μεταγλωττιστή σε number.
--listing-rhs-width=number
Ορίστε το μέγιστο πλάτος μιας γραμμής εισόδου πηγής, όπως εμφανίζεται σε μια λίστα, σε number byte.
--listing-cont-lines=number
Ορίστε τον μέγιστο αριθμό γραμμών που εκτυπώνονται σε μια λίστα για μια μεμονωμένη γραμμή εισόδου σε number +
--multibyte-handling=allow
--multibyte-handling=warn
--multibyte-handling=warn-sym-only
--multibyte-handling=warn_sym_only
Ελέγχει τον τρόπο με τον οποίο ο μεταγλωττιστής χειρίζεται τους χαρακτήρες πολλαπλών byte στην είσοδο. Η προεπιλογή (η οποία μπορεί να επαναφερθεί χρησιμοποιώντας την παράμετρο allow) είναι να επιτρέπονται αυτοί οι χαρακτήρες χωρίς κάποια ένδειξη. Η χρήση της παραμέτρου warn θα κάνει τον μεταγλωττιστή να παράγει ένα μήνυμα προειδοποίησης κάθε φορά που ανιχνεύεται ένας χαρακτήρας πολλαπλών byte. Η χρήση της παραμέτρου warn-sym-only θα προκαλέσει μόνο την εμφάνιση μιας προειδοποίησης όταν ορίζεται ένα σύμβολο με ένα όνομα που περιέχει χαρακτήρες πολλαπλών byte. (Οι αναφορές σε μη ορισμένα σύμβολα δεν θα δημιουργήσουν προειδοποίηση).
--no-pad-sections
Διακόπτει τον συναρμολογητή από το να προσθέτει περιττό χώρο στο τέλος των τμημάτων εξόδου, ώστε να ευθυγραμμίζονται με την ευθυγράμμιση του τμήματος.
Από προεπιλογή, τα τμήματα προστίθενται, αλλά αυτό μπορεί να σπαταλήσει χώρο, κάτι που θα μπορούσε να είναι σημαντικό σε περιβάλλοντα με περιορισμένη μνήμη.
-o objfile
Καθορίζει το όνομα του αρχείου αντικειμένου εξόδου ως objfile.
-R
Συγχωνεύει το τμήμα δεδομένων στο τμήμα κειμένου.
--reduce-memory-overheads
Αγνοείται. Υποστηρίζεται για λόγους συμβατότητας με εργαλεία που περνούν την ίδια επιλογή στον συναρμολογητή και στον συνδετή.
--scfi=experimental
Αυτή η επιλογή ελέγχει εάν ο συναρμολογητής θα παράγει CFI για χειροκίνητες εισόδους. Εάν η είσοδος περιέχει ήδη κάποιες συνθετικές οδηγίες CFI, ο συναρμολογητής τις αγνοεί και εκδίδει μια προειδοποίηση. Σημειώστε ότι το "--scfi=experimental" δεν προορίζεται για χρήση σε κώδικα που δημιουργείται από μεταγλωττιστή, συμπεριλαμβανομένης της ενσωματωμένης συναρμολόγησης. Αυτή η πειραματική υποστήριξη είναι υπό ανάπτυξη.
Υποστηρίζεται μόνο το System V AMD64 ABI.
Κάθε συνάρτηση εισόδου στη συναρμολόγηση πρέπει να ξεκινά με την οδηγία ".type" και ιδανικά θα πρέπει να κλείνει με μια οδηγία ".size". Όταν χρησιμοποιείται το SCFI, κάθε οδηγία ".type" προτρέπει το GAS να ξεκινήσει μια νέα FDE (Λειτουργική Περιγραφή Εισόδου). Αυτό σημαίνει ότι με κάθε οδηγία ".type", ένα προηγούμενο μπλοκ εντολών, εάν υπάρχει, οριστικοποιείται ως μια ξεχωριστή FDE.
--sectname-subst
Ενεργοποιεί τις ακολουθίες αντικατάστασης στα ονόματα των τμημάτων.
--size-check=error
--size-check=warning
Εκδίδει ένα σφάλμα ή μια προειδοποίηση για μη έγκυρη οδηγία ELF .size.
--statistics
Εμφανίζει το μέγιστο χρησιμοποιούμενο χώρο (σε byte) και τον συνολικό χρόνο (σε δευτερόλεπτα) που απαιτεί η συναρμολόγηση.
--strip-local-absolute
Αφαιρεί τα τοπικά απόλυτα σύμβολα από τον πίνακα συμβόλων εξόδου.
-v
--verbose
Εμφανίζει την έκδοση του as.
--version
-version
Εμφανίζει την έκδοση του as και τερματίζει.
-W
--no-warn
Καταστέλλει τα μηνύματα προειδοποίησης.
--warn
Δεν καταστέλλει τα μηνύματα προειδοποίησης ή τα αντιμετωπίζει ως σφάλματα.
--fatal-warnings
Αντιμετωπίζει τις προειδοποιήσεις ως σφάλματα.
-w
Αγνοείται.
-x
Αγνοείται.
-Z
Δημιουργεί ένα αρχείο αντικειμένου ακόμη και μετά από σφάλματα.
-- | files ...
Τυπική είσοδος ή αρχεία προέλευσης για συναρμολόγηση.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για τη λειτουργία 64-bit της αρχιτεκτονικής ARM (AArch64).
-EB
Αυτή η επιλογή καθορίζει ότι η έξοδος που παράγεται από τον συναρμολογητή θα πρέπει να επισημαίνεται ως κωδικοποιημένη για έναν επεξεργαστή big-endian.
-EL
Αυτή η επιλογή καθορίζει ότι η έξοδος που παράγεται από τον συναρμολογητή θα πρέπει να επισημαίνεται ως κωδικοποιημένη για έναν επεξεργαστή little-endian.
-mabi=abi
Καθορίζει το ABI που χρησιμοποιεί ο πηγαίος κώδικας. Τα αναγνωρισμένα ορίσματα είναι: "ilp32" και "lp64", τα οποία καθορίζουν το αρχείο αντικειμένου ELF32 και ELF64 που θα δημιουργηθεί, αντίστοιχα. Η προεπιλογή είναι "lp64".
-mcpu=processor[+extension...]
Αυτή η επιλογή καθορίζει τον στοχευμένο επεξεργαστή. Ο συναρμολογητής θα εκδώσει ένα μήνυμα σφάλματος εάν γίνει προσπάθεια συναρμολόγησης μιας εντολής που δεν θα εκτελεστεί στον στοχευμένο επεξεργαστή. Τα ακόλουθα ονόματα επεξεργαστών αναγνωρίζονται: "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-a520", "cortex-a710", "cortex-a720", "ares", "exynos-m1", "falkor", "neoverse-n1", "neoverse-n2", "neoverse-e1", "neoverse-v1", "qdf24xx", "saphira", "thunderx", "vulcan", "xgene1", "xgene2", "cortex-r82", "cortex-x1", "cortex-x2", "cortex-x3" και "cortex-x4". Το ειδικό όνομα "all" μπορεί να χρησιμοποιηθεί για να επιτρέψει στον συναρμολογητή να αποδεχτεί εντολές που είναι έγκυρες για οποιονδήποτε υποστηριζόμενο επεξεργαστή, συμπεριλαμβανομένων όλων των προαιρετικών επεκτάσεων.
Εκτός από το βασικό σύνολο εντολών, ο μεταγλωττιστής μπορεί να ρυθμιστεί ώστε να δέχεται ή να περιορίζει διάφορες επεκτάσεις μνημονικών που επεκτείνουν τον επεξεργαστή.
Εάν ορισμένες υλοποιήσεις ενός συγκεκριμένου επεξεργαστή μπορούν να έχουν μια επέκταση, τότε αυτές οι επεκτάσεις ενεργοποιούνται αυτόματα. Ως εκ τούτου, συνήθως δεν θα χρειαστεί να καθορίσετε επιπλέον επεκτάσεις.
-march=αρχιτεκτονική[+επέκταση...]
Αυτή η επιλογή καθορίζει την αρχιτεκτονική στόχο. Ο μεταγλωττιστής θα εκδώσει ένα μήνυμα σφάλματος εάν γίνει προσπάθεια μεταγλώττισης μιας εντολής που δεν θα εκτελεστεί στην αρχιτεκτονική στόχο. Τα ακόλουθα ονόματα αρχιτεκτονικής αναγνωρίζονται: "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.9-a", "armv8-r", "armv9-a", "armv9.1-a", "armv9.2-a", "armv9.3-a", "armv9.4-a" και "armv9.5-a".
Εάν καθοριστούν τόσο οι επιλογές -mcpu όσο και -march, ο μεταγλωττιστής θα χρησιμοποιήσει την ρύθμιση για την -mcpu. Εάν δεν καθοριστεί καμία από τις δύο, ο μεταγλωττιστής θα χρησιμοποιήσει την προεπιλεγμένη τιμή -mcpu=all.
Η επιλογή αρχιτεκτονικής μπορεί να επεκταθεί με τις ίδιες επιλογές επεκτάσεων συνόλου εντολών όπως και η επιλογή -mcpu. Σε αντίθεση με την -mcpu, οι επεκτάσεις δεν είναι πάντα ενεργοποιημένες από προεπιλογή.
-mverbose-error
Αυτή η επιλογή ενεργοποιεί λεπτομερή μηνύματα σφαλμάτων για το AArch64 gas. Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή.
-mno-verbose-error
Αυτή η επιλογή απενεργοποιεί τα λεπτομερή μηνύματα σφαλμάτων στο AArch64 gas.
-menable-sysreg-checking
Αυτή η επιλογή ενεργοποιεί μηνύματα σφάλματος που εκδίδονται εάν γίνει προσπάθεια μεταγλώττισης μιας πρόσβασης σε συστηματικό καταχωρητή που δεν θα εκτελεστεί στην αρχιτεκτονική στόχο.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as είναι διαμορφωμένο για έναν επεξεργαστή Alpha.
-mcpu
Αυτή η επιλογή καθορίζει τον επεξεργαστή στόχο. Εάν γίνει προσπάθεια μεταγλώττισης μιας εντολής που δεν θα εκτελεστεί στον επεξεργαστή στόχο, ο μεταγλωττιστής μπορεί είτε να επεκτείνει την εντολή ως μια μακροεντολή είτε να εκδώσει ένα μήνυμα σφάλματος. Αυτή η επιλογή είναι ισοδύναμη με την οδηγία ".arch".
Τα ακόλουθα ονόματα επεξεργαστών αναγνωρίζονται: 21064, "21064a", 21066, 21068, 21164, "21164a", "21164pc", 21264, "21264a", "21264b", "ev4", "ev5", "lca45", "ev5", "ev56", "pca56", "ev6", "ev67", "ev68". Το ειδικό όνομα "all" μπορεί να χρησιμοποιηθεί για να επιτρέψει στον μεταγλωττιστή να δέχεται εντολές που είναι έγκυρες για οποιονδήποτε επεξεργαστή Alpha.
Για να υποστηριχθεί η υπάρχουσα πρακτική στο OSF/1 σχετικά με το ".arch" και η υπάρχουσα πρακτική στο MILO (ο Linux ARC bootloader), τα αριθμητικά ονόματα επεξεργαστών (π.χ. 21064) ενεργοποιούν τις συγκεκριμένες για τον επεξεργαστή οδηγίες PALcode, ενώ τα ονόματα "electro-vlasic" (π.χ. "ev4") δεν το κάνουν.
-mdebug
-no-mdebug
Ενεργοποιεί ή απενεργοποιεί τη δημιουργία περιτύλιξης ".mdebug" για οδηγίες stabs και περιγραφείς διαδικασιών. Από προεπιλογή, το ".mdebug" ενεργοποιείται αυτόματα όταν εντοπιστεί η πρώτη οδηγία stabs.
-relax
Αυτή η επιλογή αναγκάζει όλες τις μεταθέσεις να τοποθετηθούν στο αρχείο αντικειμένου, αντί να εξοικονομήσει χώρο και να επιλύσει ορισμένες μεταθέσεις κατά τη φάση της συναρμολόγησης. Σημειώστε ότι αυτή η επιλογή δεν διαδίδει όλη την αριθμητική συμβόλων στο αρχείο αντικειμένου, επειδή δεν μπορεί όλη η αριθμητική συμβόλων να αναπαρασταθεί. Ωστόσο, η επιλογή μπορεί να είναι χρήσιμη σε συγκεκριμένες εφαρμογές.
-replace
-noreplace
Ενεργοποιεί ή απενεργοποιεί τη βελτιστοποίηση των κλήσεων διαδικασιών, τόσο κατά τη φάση της συναρμολόγησης όσο και κατά τη φάση της σύνδεσης. Αυτές οι επιλογές είναι διαθέσιμες μόνο για στόχους VMS και το "-replace" είναι η προεπιλογή. Δείτε την ενότητα 4.1 του Εγχειριδίου Χρηστικότητας του OpenVMS Linker.
-g Αυτή η επιλογή χρησιμοποιείται όταν ο μεταγλωττιστής δημιουργεί πληροφορίες εντοπισμού σφαλμάτων. Όταν ο gcc χρησιμοποιεί το mipstfile για να δημιουργήσει πληροφορίες εντοπισμού σφαλμάτων για το ECOFF, οι τοπικές ετικέτες πρέπει να περνούν στο αρχείο αντικειμένου. Διαφορετικά, αυτή η επιλογή δεν έχει καμία επίδραση.
-Gsize
Ένα τοπικό κοινό σύμβολο μεγαλύτερο από το μέγεθος τοποθετείται στο ".bss", ενώ τα μικρότερα σύμβολα τοποθετούνται στο ".sbss".
-F
-32addr
Αυτές οι επιλογές αγνοούνται για λόγους συμβατότητας.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή ARC.
-mcpu=cpu
Αυτή η επιλογή επιλέγει την κύρια παραλλαγή του επεξεργαστή.
-EB | -EL
Επιλέξτε έξοδο μεγάλου-άκρου (-EB) ή μικρού-άκρου (-EL).
-mcode-density
Ενεργοποιήστε τις οδηγίες επέκτασης πυκνότητας κώδικα.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για την οικογένεια επεξεργαστών ARM.
-mcpu=processor[+extension...]
Καθορίστε ποια παραλλαγή επεξεργαστή ARM είναι ο στόχος.
-march=architecture[+extension...]
Καθορίστε ποια παραλλαγή αρχιτεκτονικής ARM χρησιμοποιείται από τον στόχο.
-mfpu=floating-point-format
Επιλέξτε ποια αρχιτεκτονική κινητής υποδιαστολής είναι ο στόχος.
-mfloat-abi=abi
Επιλέξτε ποιο ABI κινητής υποδιαστολής χρησιμοποιείται.
-mthumb
Ενεργοποιήστε την αποκωδικοποίηση μόνο οδηγιών Thumb.
-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
Επιλέξτε ποια σύμβαση κλήσης διαδικασίας χρησιμοποιείται.
-EB | -EL
Επιλέξτε έξοδο μεγάλου-άκρου (-EB) ή μικρού-άκρου (-EL).
-mthumb-interwork
Καθορίστε ότι ο κώδικας έχει δημιουργηθεί με γνώμονα την αλληλεπίδραση μεταξύ κώδικα Thumb και ARM.
-mccs
Ενεργοποιεί τη λειτουργία συμβατότητας σύνταξης συναρμολόγησης CodeComposer Studio.
-k Καθορίστε ότι έχει δημιουργηθεί κώδικας PIC.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για την οικογένεια επεξεργαστών Blackfin.
-mcpu=processor[-sirevision]
Αυτή η επιλογή καθορίζει τον επεξεργαστή-στόχο. Η προαιρετική παράμετρος sirevision δεν χρησιμοποιείται στον μεταγλωττιστή. Βρίσκεται εδώ, έτσι ώστε ο GCC να μπορεί εύκολα να μεταφέρει την επιλογή του "-mcpu=". Ο μεταγλωττιστής θα εκδώσει ένα μήνυμα σφάλματος εάν γίνει προσπάθεια συναρμολόγησης μιας οδηγίας που δεν θα εκτελεστεί στον επεξεργαστή-στόχο. Τα ακόλουθα ονόματα επεξεργαστών αναγνωρίζονται: "bf504", "bf506", "bf512", "bf514", "bf516", "bf518", "bf522", "bf523", "bf524", "bf525", "bf526", "bf527", "bf531", "bf532", "bf533", "bf534", "bf535" (δεν έχει υλοποιηθεί ακόμη), "bf536", "bf537", "bf538", "bf539", "bf542", "bf542m", "bf544", "bf544m", "bf547", "bf547m", "bf548", "bf548m", "bf549", "bf549m", "bf561" και "bf592".
-mfdpic
Συναρμολόγηση για το ABI FDPIC.
-mno-fdpic
-mnopic
Απενεργοποίηση του -mfdpic.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as είναι διαμορφωμένο για την οικογένεια επεξεργαστών Linux kernel BPF.
@chapter Εξαρτώμενες δυνατότητες BPF
Επιλογές BPF
-EB Αυτή η επιλογή καθορίζει ότι ο assembler πρέπει να παράγει big-endian eBPF.
-EL Αυτή η επιλογή καθορίζει ότι ο assembler πρέπει να παράγει little-endian eBPF.
-mdialect=dialect
Αυτή η επιλογή καθορίζει τη γλώσσα συναρμολόγησης που θα αναγνωρίζεται κατά τη συναρμολόγηση. Ο assembler υποστηρίζει κανονική και ψευδο-c.
-misa-spec=spec
Αυτή η επιλογή καθορίζει την έκδοση του συνόλου εντολών BPF που θα χρησιμοποιηθεί κατά τη συναρμολόγηση. Οι εκδόσεις BPF ISA που υποστηρίζονται είναι v1, v2, v3 και v4.
Η τιμή xbpf μπορεί να καθοριστεί για να αναγνωρίζονται επιπλέον εντολές που χρησιμοποιούνται από το GCC για σκοπούς δοκιμών. Αλλά να είστε προσεκτικοί, αυτό δεν είναι έγκυρο BPF.
-mno-relax
Αυτή η επιλογή λέει στον assembler να μην χαλαρώνει τις εντολές.
Σημειώστε ότι εάν δεν καθοριστεί καμία επιλογή endianness στη γραμμή εντολών, χρησιμοποιείται η endianness του κεντρικού συστήματος. Δείτε τις σελίδες πληροφοριών για την τεκμηρίωση των επιλογών ειδικά για το CRIS.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as είναι διαμορφωμένο για την οικογένεια επεξεργαστών C-SKY.
-march=archname
Συναρμολόγηση για αρχιτεκτονική archname. Η επιλογή --help εμφανίζει τις έγκυρες τιμές για το archname.
-mcpu=cpuname
Συναρμολόγηση για αρχιτεκτονική cpuname. Η επιλογή --help εμφανίζει τις έγκυρες τιμές για το cpuname.
-EL
-mlittle-endian
Δημιουργία εξόδου little-endian.
-EB
-mbig-endian
Δημιουργία εξόδου big-endian.
-fpic
-pic
Δημιουργία κώδικα ανεξάρτητου θέσης.
-mljump
-mno-ljump
Ενεργοποίηση/απενεργοποίηση της μετατροπής των εντολών σύντομης διακλάδωσης "jbf", "jbt" και "jbr" σε "jmpi". Αυτή η επιλογή είναι μόνο για επεξεργαστές V2. Αγνοείται στους στόχους CK801 και CK802, οι οποίοι δεν υποστηρίζουν την εντολή "jmpi", και είναι ενεργοποιημένη από προεπιλογή για άλλους επεξεργαστές.
-mbranch-stub
-mno-branch-stub
Διαβίβαση των αναφορών "R_CKCORE_PCREL_IMM26BY2" για τις εντολές "bsr" στον συνδετή.
Αυτή η επιλογή είναι διαθέσιμη μόνο για στόχους ELF C-SKY V2 bare-metal, όπου είναι ενεργοποιημένη από προεπιλογή. Δεν μπορεί να χρησιμοποιηθεί σε κώδικα που θα συνδεθεί δυναμικά με κοινόχρηστες βιβλιοθήκες.
-force2bsr
-mforce2bsr
-no-force2bsr
-mno-force2bsr
Ενεργοποίηση/απενεργοποίηση της μετατροπής των εντολών "jbsr" σε "bsr". Αυτή η επιλογή είναι πάντα ενεργοποιημένη (και το -mno-force2bsr αγνοείται) για τους στόχους CK801/CK802. Είναι επίσης πάντα ενεργοποιημένη όταν το -mbranch-stub είναι ενεργό.
-jsri2bsr
-mjsri2bsr
-no-jsri2bsr
-mno-jsri2bsr
Ενεργοποιεί/απενεργοποιεί τη μετατροπή των εντολών "jsri" σε "bsr". Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή.
-mnolrw
-mno-lrw
Ενεργοποιεί/απενεργοποιεί τη μετατροπή των εντολών "lrw" σε ένα ζεύγος "movih"/"ori".
-melrw
-mno-elrw
Ενεργοποιεί/απενεργοποιεί τις επεκτεταμένες εντολές "lrw". Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή για τους επεξεργαστές της σειράς CK800.
-mlaf
-mliterals-after-func
-mno-laf
-mno-literals-after-func
Ενεργοποιεί/απενεργοποιεί την τοποθέτηση των δεξαμενών λογικών τιμών μετά από κάθε συνάρτηση.
-mlabr
-mliterals-after-br
-mno-labr
-mnoliterals-after-br
Ενεργοποιεί/απενεργοποιεί την τοποθέτηση των δεξαμενών λογικών τιμών μετά από άνευ όρων διακλαδώσεις. Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή.
-mistack
-mno-istack
Ενεργοποιεί/απενεργοποιεί τις εντολές στοίβας διακοπών. Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή στους επεξεργαστές CK801, CK802 και CK802.
Οι παρακάτω επιλογές ενεργοποιούν ρητά ορισμένες προαιρετικές εντολές. Αυτά τα χαρακτηριστικά ενεργοποιούνται επίσης έμμεσα χρησιμοποιώντας το "-mcpu=" για να καθοριστεί ένας επεξεργαστής που το υποστηρίζει.
-mhard-float
Ενεργοποιεί εντολές κινητής υποδιαστολής.
-mmp
Ενεργοποιεί εντολές πολλαπλών επεξεργαστών.
-mcp
Ενεργοποιεί εντολές συμπεξεργαστή.
-mcache
Ενεργοποιεί την εντολή προφόρτωσης κρυφής μνήμης.
-msecurity
Ενεργοποιεί εντολές ασφαλείας C-SKY.
-mtrust
Ενεργοποιεί εντολές αξιοπιστίας C-SKY.
-mdsp
Ενεργοποιεί εντολές DSP.
-medsp
Ενεργοποιεί ενισχυμένες εντολές DSP.
-mvdsp
Ενεργοποιεί εντολές διανυσματικού DSP.
Οι παρακάτω επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή Epiphany.
-mepiphany
Καθορίζει ότι τόσο οι εντολές 32 όσο και 16 bit επιτρέπονται. Αυτή είναι η προεπιλεγμένη συμπεριφορά.
-mepiphany16
Περιορίζει τις επιτρεπόμενες εντολές μόνο στο σύνολο των 16 bit.
Οι παρακάτω επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή H8/300. @chapter Χαρακτηριστικά H8/300
### Επιλογές
Η έκδοση Renesas H8/300 του "as" έχει μία μηχανική-εξαρτώμενη επιλογή:
-h-tick-hex
Υποστηρίζει δεκαεξαδικές σταθερές στυλ H'00, εκτός από το στυλ 0x00.
-mach=name
Ορίζει την παραλλαγή μηχανής H8300. Τα ακόλουθα ονόματα μηχανών αναγνωρίζονται: "h8300h", "h8300hn", "h8300s", "h8300sn", "h8300sx" και "h8300sxn".
Οι παρακάτω επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή i386.
--32 | --x32 | --64
Επιλέξτε το μέγεθος της λέξης, είτε 32 bit είτε 64 bit. Το --32 υποδηλώνει την αρχιτεκτονική Intel i386, ενώ τα --x32 και --64 υποδηλώνουν την αρχιτεκτονική AMD x86-64 με μέγεθος λέξης 32 bit ή 64 bit, αντίστοιχα.
Αυτές οι επιλογές είναι διαθέσιμες μόνο με τη μορφή αρχείου αντικειμένου ELF και απαιτούν να συμπεριληφθεί η απαραίτητη υποστήριξη BFD (σε μια πλατφόρμα 32 bit, πρέπει να προσθέσετε --enable-64-bit-bfd για να ενεργοποιήσετε τη χρήση 64 bit και να χρησιμοποιήσετε το x86-64 ως πλατφόρμα-στόχο).
-n
Από προεπιλογή, το x86 GAS αντικαθιστά πολλαπλές εντολές nop που χρησιμοποιούνται για ευθυγράμμιση εντός των τμημάτων κώδικα με εντολές nop πολλαπλών byte, όπως leal 0(%esi,1),%esi. Αυτή η διακόπτης απενεργοποιεί τη βελτιστοποίηση εάν μια εντολή nop ενός byte (0x90) καθοριστεί ρητά ως byte πλήρωσης για ευθυγράμμιση.
--divide
Σε πλατφόρμες που βασίζονται στο SVR4, ο χαρακτήρας / αντιμετωπίζεται ως χαρακτήρας σχολίου, πράγμα που σημαίνει ότι δεν μπορεί να χρησιμοποιηθεί σε εκφράσεις. Η επιλογή --divide μετατρέπει το / σε έναν κανονικό χαρακτήρα. Αυτό δεν απενεργοποιεί το / στην αρχή μιας γραμμής που ξεκινά ένα σχόλιο, ούτε επηρεάζει τη χρήση του # για την έναρξη ενός σχολίου.
-march=CPU[+EXTENSION...]
Αυτή η επιλογή καθορίζει τον στοχευμένο επεξεργαστή. Ο μεταγλωττιστής θα εκδώσει ένα μήνυμα σφάλματος εάν γίνει προσπάθεια μεταγλώττισης μιας εντολής που δεν θα εκτελεστεί στον στοχευμένο επεξεργαστή. Τα ακόλουθα ονόματα επεξεργαστών αναγνωρίζονται: "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", "znver5", "znver6", "btver1", "btver2", "generic32" και "generic64".
Εκτός από το βασικό σύνολο εντολών, ο μεταγλωττιστής μπορεί να διαμορφωθεί ώστε να δέχεται διάφορα ονόματα επεκτάσεων. Για παράδειγμα, το "-march=i686+sse4+vmx" επεκτείνει το i686 με τις sse4 και vmx.
Οι ακόλουθες επεκτάσεις υποστηρίζονται επί του παρόντος: 8087, 287, 387, 687, "cmov", "fxsr", "mmx", "sse", "sse2", "sse3", "sse4a", "ssse3", "sse4.1", "sse4.2", "sse4", "avx", "avx2", "lahf_sahf", "monitor", "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", "avx512_bmm", "prefetchi", "avx_ifma", "avx_vnni_int8", "cmpccxadd", "wrmsrns", "msrlist", "avx_ne_convert", "rao_int", "fred", "lkgs", "avx_vnni_int16", "sha512", "sm3", "sm4", "pbndkb", "avx10.1", "avx10.1/512", "avx10.1/256", "avx10.1/128", "user_msr", "msr_imm", "apx_f", "apx_nci", "apx_ndd", "apx_nf", "apx_nci_ndd_nf", "avx10.2", "avx10.2/512", "avx10.2/256", "avx10.2/128", "movrs", "amx_int8", "amx_bf16", "amx_fp16", "amx_complex", "amx_transpose", "amx_tf32", "amx_fp8", "amx_movrs", "amx_avx512", "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", "rmpquery", "rmpread", "svme", "gmism2", "gmiccs", "padlockrng2", "padlockphe2", "padlockxmodx" και "padlock". Σημειώστε ότι αυτά τα ονόματα επεκτάσεων μπορούν να προθέτουν το "no" για να καταργήσουν τη σχετική (και οποιαδήποτε εξαρτώμενη) λειτουργικότητα. Σημειώστε επίσης ότι οι καταλήξεις που επιτρέπονται στο "-march=avx10.
Όταν χρησιμοποιείται η οδηγία ".arch" με το -march, η οδηγία ".arch" θα έχει προτεραιότητα.
-mtune=CPU
Αυτή η επιλογή καθορίζει έναν επεξεργαστή για τον οποίο θα γίνει βελτιστοποίηση. Όταν χρησιμοποιείται σε συνδυασμό με την επιλογή -march, θα δημιουργηθούν μόνο οι οδηγίες του επεξεργαστή που καθορίζεται από την επιλογή -march.
Οι έγκυρες τιμές CPU είναι ίδιες με τη λίστα επεξεργαστών του -march=CPU.
-moperand-check=none
-moperand-check=warning
-moperand-check=error
Αυτές οι επιλογές ελέγχουν εάν ο μεταγλωττιστής πρέπει να ελέγχει ορισμένα τελεστές ή συνδυασμούς τελεστών οδηγιών. Ένα παράδειγμα οδηγιών όπου το μέγεθος του τελεστή δεν μπορεί να συναχθεί από τους τελεστές του και επίσης δεν έχει καθοριστεί μέσω ενός επιθήματος οδηγίας. Το -moperand-check=none θα κάνει τον μεταγλωττιστή να μην εκτελεί αυτούς τους ελέγχους. Το -moperand-check=warning θα κάνει τον μεταγλωττιστή να εκδίδει μια προειδοποίηση όταν αποτύχουν οι αντίστοιχοι έλεγχοι, το οποίο είναι η προεπιλογή. Το -moperand-check=error θα κάνει τον μεταγλωττιστή να εκδίδει ένα σφάλμα όταν αποτύχουν οι αντίστοιχοι έλεγχοι.
-msse2avx
Αυτή η επιλογή καθορίζει ότι ο μεταγλωττιστής θα κωδικοποιεί τις οδηγίες SSE με πρόθεμα VEX, απαιτώντας την ύπαρξη AVX. Οι οδηγίες SSE που χρησιμοποιούν εκτεταμένους καταχωρητές GPR θα κωδικοποιηθούν με το πρόθεμα EVEX, απαιτώντας την ύπαρξη AVX512 ή AVX10.
-muse-unaligned-vector-move
Αυτή η επιλογή καθορίζει ότι ο μεταγλωττιστής θα κωδικοποιεί τις στοιχειακές μετακινήσεις διανυσμάτων ως μη στοιχειακές μετακινήσεις διανυσμάτων.
-msse-check=none
-msse-check=warning
-msse-check=error
Αυτές οι επιλογές ελέγχουν εάν ο μεταγλωττιστής πρέπει να ελέγχει τις οδηγίες SSE. Το -msse-check=none θα κάνει τον μεταγλωττιστή να μην ελέγχει τις οδηγίες SSE, το οποίο είναι η προεπιλογή. Το -msse-check=warning θα κάνει τον μεταγλωττιστή να εκδίδει μια προειδοποίηση για οποιαδήποτε οδηγία SSE. Το -msse-check=error θα κάνει τον μεταγλωττιστή να εκδίδει ένα σφάλμα για οποιαδήποτε οδηγία SSE.
-mavxscalar=128
-mavxscalar=256
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο ο μεταγλωττιστής θα κωδικοποιεί τις στοιχειακές οδηγίες AVX. Το -mavxscalar=128 θα κωδικοποιήσει τις στοιχειακές οδηγίες AVX με στοιχειακό μήκος διανύσματος 128 bit, το οποίο είναι η προεπιλογή. Το -mavxscalar=256 θα κωδικοποιήσει τις στοιχειακές οδηγίες AVX με στοιχειακό μήκος διανύσματος 256 bit.
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Μην το χρησιμοποιείτε για κώδικα παραγωγής - λόγω σφαλμάτων υλικού, ο προκύπτων κώδικας ενδέχεται να μην λειτουργεί σε ορισμένα μοντέλα.
-mvexwig=0
-mvexwig=1
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο ο μεταγλωττιστής θα κωδικοποιεί τις οδηγίες VEX.W-ignored (WIG) VEX. Το -mvexwig=0 θα κωδικοποιήσει τις οδηγίες WIG VEX με vex.w = 0, το οποίο είναι η προεπιλογή. Το -mvexwig=1 θα κωδικοποιήσει τις οδηγίες EVEX WIG με vex.w = 1.
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Μην το χρησιμοποιείτε για παραγωγικό κώδικα - λόγω σφαλμάτων της CPU, ο κώδικας που προκύπτει ενδέχεται να μην λειτουργεί σε ορισμένα μοντέλα.
-mevexlig=128
-mevexlig=256
-mevexlig=512
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο ο μεταγλωττιστής θα κωδικοποιήσει τις εντολές EVEX που αγνοούν το μήκος (LIG). Το -mevexlig=128 θα κωδικοποιήσει τις εντολές EVEX που αγνοούν το μήκος με μήκος διανύσματος 128 bit, το οποίο είναι η προεπιλογή. Τα -mevexlig=256 και -mevexlig=512 θα κωδικοποιήσουν τις εντολές EVEX που αγνοούν το μήκος με μήκος διανύσματος 256 bit και 512 bit, αντίστοιχα.
-mevexwig=0
-mevexwig=1
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο ο μεταγλωττιστής θα κωδικοποιήσει τις εντολές EVEX που αγνοούν το bit w (WIG). Το -mevexwig=0 θα κωδικοποιήσει τις εντολές EVEX που αγνοούν το bit w με evex.w = 0, το οποίο είναι η προεπιλογή. Το -mevexwig=1 θα κωδικοποιήσει τις εντολές EVEX που αγνοούν το bit w με evex.w = 1.
-mmnemonic=att
-mmnemonic=intel
Αυτή η επιλογή καθορίζει τη μνημονική παράσταση της εντολής για την αντιστοίχιση εντολών. Οι οδηγίες ".att_mnemonic" και ".intel_mnemonic" έχουν προτεραιότητα.
-msyntax=att
-msyntax=intel
Αυτή η επιλογή καθορίζει τη σύνταξη της εντολής κατά την επεξεργασία των εντολών. Οι οδηγίες ".att_syntax" και ".intel_syntax" έχουν προτεραιότητα.
-mnaked-reg
Αυτή η επιλογή καθορίζει ότι οι καταχωρητές δεν απαιτούν πρόθεμα "%". Οι οδηγίες ".att_syntax" και ".intel_syntax" έχουν προτεραιότητα.
-madd-bnd-prefix
Αυτή η επιλογή αναγκάζει τον μεταγλωττιστή να προσθέτει το πρόθεμα BND σε όλες τις διακλαδώσεις, ακόμη και αν αυτό το πρόθεμα δεν έχει καθοριστεί ρητά στον πηγαίο κώδικα.
-mno-shared
Στον στόχο ELF, ο μεταγλωττιστής συνήθως βελτιστοποιεί τις μη-PLT αναφορές σε καθορισμένους, μη-ασθενείς, καθολικούς στόχους διακλάδωσης με προεπιλεγμένη ορατότητα. Η επιλογή -mshared λέει στον μεταγλωττιστή να δημιουργήσει κώδικα που μπορεί να χρησιμοποιηθεί σε μια κοινόχρηστη βιβλιοθήκη, όπου όλοι οι μη-ασθενείς, καθολικοί στόχοι διακλάδωσης με προεπιλεγμένη ορατότητα μπορούν να αντικατασταθούν. Ο κώδικας που προκύπτει είναι ελαφρώς μεγαλύτερος. Αυτή η επιλογή επηρεάζει μόνο τη διαχείριση των εντολών διακλάδωσης.
-mbig-obj
Στον στόχο PE/COFF, αυτή η επιλογή αναγκάζει τη χρήση της μεγάλης μορφής αρχείου αντικειμένου, η οποία επιτρέπει περισσότερες από 32768 ενότητες.
-momit-lock-prefix=no
-momit-lock-prefix=yes
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο ο μεταγλωττιστής θα κωδικοποιήσει το πρόθεμα κλειδώματος. Αυτή η επιλογή προορίζεται ως μια λύση για επεξεργαστές που αποτυγχάνουν με το πρόθεμα κλειδώματος. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί με ασφάλεια μόνο σε υπολογιστές με έναν πυρήνα και ένα νήμα. Το -momit-lock-prefix=yes θα παραλείψει όλα τα προθέματα κλειδώματος. Το -momit-lock-prefix=no θα κωδικοποιήσει το πρόθεμα κλειδώματος όπως συνήθως, το οποίο είναι η προεπιλογή.
-mfence-as-lock-add=no
-mfence-as-lock-add=yes
Αυτές οι επιλογές ελέγχουν τον τρόπο με τον οποίο ο μεταγλωττιστής θα κωδικοποιήσει τις εντολές lfence, mfence και sfence. Το -mfence-as-lock-add=yes θα κωδικοποιήσει τις εντολές lfence, mfence και sfence ως lock addl $0x0, (%rsp) σε λειτουργία 64 bit και lock addl $0x0, (%esp) σε λειτουργία 32 bit. Το -mfence-as-lock-add=no θα κωδικοποιήσει τις εντολές lfence, mfence και sfence όπως συνήθως, το οποίο είναι η προεπιλογή.
-mrelax-relocations=no
-mrelax-relocations=yes
Αυτές οι επιλογές ελέγχουν αν ο μεταγλωττιστής θα δημιουργεί χαλαρωτικές μετατοπίσεις, R_386_GOT32X, σε λειτουργία 32-bit, ή R_X86_64_GOTPCRELX και R_X86_64_REX_GOTPCRELX σε λειτουργία 64-bit. Η επιλογή -mrelax-relocations=yes θα δημιουργήσει χαλαρωτικές μετατοπίσεις. Η επιλογή -mrelax-relocations=no δεν θα δημιουργήσει χαλαρωτικές μετατοπίσεις.
-mtls-check=no
-mtls-check=yes
Αυτές οι επιλογές ελέγχουν αν ο μεταγλωττιστής θα ελέγχει τις μετατοπίσεις TLS. Η επιλογή -mtls-check=yes θα ελέγξει τις μετατοπίσεις TLS. Η επιλογή -mtls-check=no δεν θα ελέγξει τις μετατοπίσεις TLS. Η προεπιλογή μπορεί να ελεγχθεί με μια επιλογή διαμόρφωσης --enable-x86-tls-check.
-malign-branch-boundary=NUM
Αυτή η επιλογή ελέγχει πώς ο μεταγλωττιστής θα ευθυγραμμίζει τις διακλαδώσεις με πρόθεμα τμήματος ή NOP. Το NUM πρέπει να είναι δύναμη του 2. Θα πρέπει να είναι 0 ή όχι μικρότερο από 16. Οι διακλαδώσεις θα ευθυγραμμίζονται εντός ενός ορίου NUM byte. Η επιλογή -malign-branch-boundary=0, η οποία είναι η προεπιλογή, δεν ευθυγραμμίζει τις διακλαδώσεις.
-malign-branch=TYPE[+TYPE...]
Αυτή η επιλογή καθορίζει τους τύπους διακλαδώσεων που θα ευθυγραμμιστούν. Το TYPE είναι συνδυασμός των jcc, το οποίο ευθυγραμμίζει τις υπό συνθήκη μεταβάσεις, fused, το οποίο ευθυγραμμίζει τις συνδυασμένες υπό συνθήκη μεταβάσεις, jmp, το οποίο ευθυγραμμίζει τις μη υπό συνθήκη μεταβάσεις, call, το οποίο ευθυγραμμίζει τις κλήσεις, ret, το οποίο ευθυγραμμίζει τις επιστροφές, indirect, το οποίο ευθυγραμμίζει τις έμμεσες μεταβάσεις και τις κλήσεις. Η προεπιλογή είναι -malign-branch=jcc+fused+jmp.
-malign-branch-prefix-size=NUM
Αυτή η επιλογή καθορίζει τον μέγιστο αριθμό προθεμάτων σε μια εντολή για την ευθυγράμμιση των διακλαδώσεων. Το NUM θα πρέπει να είναι μεταξύ 0 και 5. Η προεπιλογή NUM είναι 5.
-mlfence-after-load=no
-mlfence-after-load=yes
Αυτές οι επιλογές ελέγχουν αν ο μεταγλωττιστής θα δημιουργήσει lfence μετά από εντολές φόρτωσης. Η επιλογή -mlfence-after-load=yes θα δημιουργήσει lfence. Η επιλογή -mlfence-after-load=no δεν θα δημιουργήσει lfence, η οποία είναι η προεπιλογή.
-mlfence-before-indirect-branch=none
-mlfence-before-indirect-branch=all
-mlfence-before-indirect-branch=register
-mlfence-before-indirect-branch=memory
Αυτές οι επιλογές ελέγχουν αν ο μεταγλωττιστής θα δημιουργήσει lfence πριν από έμμεσες κοντινές διακλαδώσεις. Η επιλογή -mlfence-before-indirect-branch=all θα δημιουργήσει lfence πριν από την έμμεση κοντινή διακλάδωση μέσω καταχωρητή και θα εκδώσει μια προειδοποίηση πριν από την έμμεση κοντινή διακλάδωση μέσω μνήμης. Επίσης, ορίζει ρητά -mlfence-before-ret=shl όταν δεν υπάρχει ρητή επιλογή -mlfence-before-ret=. Η επιλογή -mlfence-before-indirect-branch=register θα δημιουργήσει lfence πριν από την έμμεση κοντινή διακλάδωση μέσω καταχωρητή. Η επιλογή -mlfence-before-indirect-branch=memory θα εκδώσει μια προειδοποίηση πριν από την έμμεση κοντινή διακλάδωση μέσω μνήμης. Η επιλογή -mlfence-before-indirect-branch=none δεν θα δημιουργήσει lfence ούτε θα εκδώσει προειδοποίηση, η οποία είναι η προεπιλογή. Σημειώστε ότι το lfence δεν θα δημιουργηθεί πριν από την έμμεση κοντινή διακλάδωση μέσω καταχωρητή με την επιλογή -mlfence-after-load=yes, επειδή το lfence θα δημιουργηθεί μετά τη φόρτωση του καταχωρητή στόχου διακλάδωσης.
-mlfence-before-ret=none
-mlfence-before-ret=shl
-mlfence-before-ret=or
-mlfence-before-ret=yes
-mlfence-before-ret=not
Αυτές οι επιλογές ελέγχουν αν ο μεταγλωττιστής θα παράγει την εντολή lfence πριν από την ret.
-mlfence-before-ret=or θα παράγει την εντολή or με την lfence.
-mlfence-before-ret=shl/yes θα παράγει την εντολή shl με την lfence.
-mlfence-before-ret=not θα παράγει την εντολή not με την lfence. -mlfence-before-ret=none δεν θα παράγει την lfence, η οποία είναι η προεπιλογή.
-mx86-used-note=no
-mx86-used-note=yes
Αυτές οι επιλογές ελέγχουν αν ο μεταγλωττιστής θα παράγει τις ιδιότητες GNU GNU_PROPERTY_X86_ISA_1_USED και GNU_PROPERTY_X86_FEATURE_2_USED. Η προεπιλογή μπορεί να ελεγχθεί με την επιλογή διαμόρφωσης --enable-x86-used-note.
-mevexrcig=rne
-mevexrcig=rd
-mevexrcig=ru
-mevexrcig=rz
Αυτές οι επιλογές ελέγχουν πώς ο μεταγλωττιστής θα κωδικοποιήσει τις εντολές EVEX που είναι μόνο για SAE. -mevexrcig=rne θα κωδικοποιήσει τα bit RC της εντολής EVEX με 00, η οποία είναι η προεπιλογή. -mevexrcig=rd, -mevexrcig=ru και -mevexrcig=rz θα κωδικοποιήσουν τις εντολές EVEX που είναι μόνο για SAE με 01, 10 και 11 bit RC, αντίστοιχα.
-mamd64
-mintel64
Αυτή η επιλογή καθορίζει ότι ο μεταγλωττιστής θα δέχεται μόνο το ISA AMD64 ή Intel64 σε λειτουργία 64-bit. Η προεπιλογή είναι να δέχεται τα κοινά, τα Intel64 και τα AMD64 ISA.
-O0 | -O | -O1 | -O2 | -Os
Βελτιστοποίηση της κωδικοποίησης εντολών με μικρότερο μέγεθος εντολής. Οι -O και -O1 κωδικοποιούν τις εντολές φόρτωσης καταχωρητή 64-bit με άμεση τιμή 64-bit ως εντολές φόρτωσης καταχωρητή 32-bit με άμεση τιμή 31-bit ή 32-bit, κωδικοποιούν τις εντολές εκκαθάρισης καταχωρητή 64-bit ως εντολές εκκαθάρισης καταχωρητή 32-bit, κωδικοποιούν τις εντολές εκκαθάρισης διανυσματικού καταχωρητή VEX/EVEX 256-bit/512-bit ως εντολές εκκαθάρισης διανυσματικού καταχωρητή VEX 128-bit, κωδικοποιούν τις εντολές φόρτωσης/αποθήκευσης διανυσματικού καταχωρητή EVEX 128-bit/256-bit ως εντολές φόρτωσης/αποθήκευσης διανυσματικού καταχωρητή VEX, και κωδικοποιούν τις εντολές λογικής συσκευασίας ακεραίων EVEX 128-bit/256-bit ως εντολές λογικής συσκευασίας ακεραίων VEX 128-bit/256-bit.
-O2 περιλαμβάνει τη βελτιστοποίηση -O1 συν κωδικοποιεί τις εντολές εκκαθάρισης διανυσματικού καταχωρητή EVEX 256-bit/512-bit ως εντολές εκκαθάρισης διανυσματικού καταχωρητή EVEX 128-bit. Σε λειτουργία 64-bit, οι εντολές με κωδικοποίηση VEX με μεταθετικές πηγές θα έχουν επίσης τις πηγές τους αναστραμμένες εάν αυτό επιτρέπει τη χρήση της μορφής προθέματος VEX 2-byte αντί της μορφής 3-byte. Ορισμένες μορφές AND καθώς και OR με το ίδιο (καταχωρητή) όρισμα που καθορίζεται δύο φορές θα αλλάξουν επίσης σε TEST.
-Os περιλαμβάνει την βελτιστοποίηση -O2 και κωδικοποιεί τις δοκιμές καταχωρητών 16-bit, 32-bit και 64-bit με άμεση τιμή, σαν δοκιμή καταχωρητή 8-bit με άμεση τιμή. Το -O0 απενεργοποιεί αυτή τη βελτιστοποίηση.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για τη σειρά Ubicom IP2K.
-mip2022ext
Καθορίζει ότι οι επεκτεταμένες οδηγίες IP2022 επιτρέπονται.
-mip2022
Επαναφέρει τη προεπιλεγμένη συμπεριφορά, η οποία περιορίζει τις επιτρεπόμενες οδηγίες μόνο στις βασικές οδηγίες IP2022.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για τους επεξεργαστές Renesas M32C και M16C.
-m32c
Συναρμολογεί οδηγίες M32C.
-m16c
Συναρμολογεί οδηγίες M16C (η προεπιλογή).
-relax
Ενεργοποιεί την υποστήριξη για χαλαρώσεις κατά τη σύνδεση.
-h-tick-hex
Υποστηρίζει σταθερές δεκαεξαδικής μορφής τύπου H'00, επιπλέον του τύπου 0x00.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για τη σειρά Renesas M32R (πρώην Mitsubishi M32R).
--m32rx
Καθορίζει ποιος επεξεργαστής της οικογένειας M32R είναι ο στόχος. Η προεπιλογή είναι συνήθως ο M32R, αλλά αυτή η επιλογή το αλλάζει σε M32RX.
--warn-explicit-parallel-conflicts ή --Wp
Παράγει μηνύματα προειδοποίησης όταν εντοπίζονται αμφισβητήσιμες παράλληλες κατασκευές.
--no-warn-explicit-parallel-conflicts ή --Wnp
Δεν παράγει μηνύματα προειδοποίησης όταν εντοπίζονται αμφισβητήσιμες παράλληλες κατασκευές.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για τη σειρά Motorola 68000.
-l
Μειώνει τις αναφορές σε μη ορισμένα σύμβολα, σε μία λέξη αντί για δύο.
-m68000 | -m68008 | -m68010 | -m68020 | -m68030
| -m68040 | -m68060 | -m68302 | -m68331 | -m68332
| -m68333 | -m68340 | -mcpu32 | -m5200
Καθορίζει ποιος επεξεργαστής της οικογένειας 68000 είναι ο στόχος. Η προεπιλογή είναι συνήθως ο 68020, αλλά αυτό μπορεί να αλλάξει κατά τη στιγμή της διαμόρφωσης.
-m68881 | -m68882 | -mno-68881 | -mno-68882
Η στοχευόμενη μηχανή διαθέτει (ή δεν διαθέτει) έναν συμπροεπεξεργαστή κινητής υποδιαστολής. Η προεπιλογή είναι να υποτεθεί ότι υπάρχει συμπροεπεξεργαστής για τους 68020, 68030 και cpu32. Αν και ο βασικός 68000 δεν είναι συμβατός με τον 68881, ένας συνδυασμός των δύο μπορεί να καθοριστεί, επειδή είναι δυνατό να γίνει προσομοίωση των οδηγιών του συμπροεπεξεργαστή με τον κύριο επεξεργαστή.
-m68851 | -mno-68851
Η στοχευόμενη μηχανή διαθέτει (ή δεν διαθέτει) έναν συμπροεπεξεργαστή μονάδας διαχείρισης μνήμης. Η προεπιλογή είναι να υποτεθεί ότι υπάρχει ΜΜU για τους 68020 και άνω.
Για λεπτομέρειες σχετικά με τις επιλογές εξαρτημένες από τη μηχανή PDP-11, δείτε το PDP-11-Options.
-mpic | -mno-pic
Δημιουργεί κώδικα ανεξάρτητο θέσης (ή εξαρτημένο από τη θέση). Η προεπιλογή είναι -mpic.
-mall
-mall-extensions
Ενεργοποιεί όλες τις επεκτάσεις του συνόλου εντολών. Αυτή είναι η προεπιλογή.
-mno-extensions
Απενεργοποιεί όλες τις επεκτάσεις του συνόλου εντολών.
-mextension | -mno-extension
Ενεργοποιεί (ή απενεργοποιεί) μια συγκεκριμένη επέκταση του συνόλου εντολών.
-mcpu
Ενεργοποιεί τις επεκτάσεις του συνόλου εντολών που υποστηρίζονται από έναν συγκεκριμένο επεξεργαστή και απενεργοποιεί όλες τις άλλες επεκτάσεις.
-mmachine
Ενεργοποιεί τις επεκτάσεις του συνόλου εντολών που υποστηρίζονται από ένα συγκεκριμένο μοντέλο μηχανής και απενεργοποιεί όλες τις άλλες επεκτάσεις.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή picoJava.
-mb Δημιουργία εξόδου σε μορφή "big endian".
-ml Δημιουργία εξόδου σε μορφή "little endian".
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή PRU.
-mlink-relax
Υποθέστε ότι το LD θα βελτιστοποιούσε τις οδηγίες LDI32 ελέγχοντας τα ανώτερα 16 bit της έκφρασης. Εάν όλα είναι μηδενικά, τότε το LD θα συντομεύσει την οδηγία LDI32 σε μια μόνο οδηγία LDI. Σε αυτήν την περίπτωση, το "as" θα παράγει ανακατατάξεις DIFF για διαφορετικές εκφράσεις.
-mno-link-relax
Υποθέστε ότι το LD δεν θα βελτιστοποιούσε τις οδηγίες LDI32. Ως αποτέλεσμα, δεν θα εκπέμπονται ανακατατάξεις DIFF.
-mno-warn-regname-label
Μην εμφανίζετε προειδοποίηση εάν ένα όνομα ετικέτας ταιριάζει με ένα όνομα μητρώου. Συνήθως, οι προγραμματιστές συναρμολογητών θα επιθυμούσαν να εκπέμπεται αυτή η προειδοποίηση. Οι μεταγλωττιστές C ενδέχεται να θέλουν να την απενεργοποιήσουν.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή MIPS.
-G num
Αυτή η επιλογή ορίζει το μεγαλύτερο μέγεθος ενός αντικειμένου που μπορεί να αναφερθεί έμμεσα με το μητρώο "gp". Γίνεται αποδεκτή μόνο για στόχους που χρησιμοποιούν τη μορφή ECOFF, όπως ένα DECstation που εκτελεί το Ultrix. Η προεπιλεγμένη τιμή είναι 8.
-EB Δημιουργία εξόδου σε μορφή "big endian".
-EL Δημιουργία εξόδου σε μορφή "little endian".
-mips1
-mips2
-mips3
-mips4
-mips5
-mips32
-mips32r2
-mips32r3
-mips32r5
-mips32r6
-mips64
-mips64r2
-mips64r3
-mips64r5
-mips64r6
Δημιουργία κώδικα για μια συγκεκριμένη αρχιτεκτονική συνόλου εντολών MIPS. Το -mips1 είναι ένα ψευδώνυμο για το -march=r3000, το -mips2 είναι ένα ψευδώνυμο για το -march=r6000, το -mips3 είναι ένα ψευδώνυμο για το -march=r4000 και το -mips4 είναι ένα ψευδώνυμο για το -march=r8000. Τα -mips5, -mips32, -mips32r2, -mips32r3, -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5 και -mips64r6 αντιστοιχούν σε γενικούς επεξεργαστές MIPS V, MIPS32, MIPS32 Έκδοση 2, MIPS32 Έκδοση 3, MIPS32 Έκδοση 5, MIPS32 Έκδοση 6, MIPS64, MIPS64 Έκδοση 2, MIPS64 Έκδοση 3, MIPS64 Έκδοση 5 και MIPS64 Έκδοση 6 ISA, αντίστοιχα.
-march=cpu
Δημιουργία κώδικα για μια συγκεκριμένη CPU MIPS.
-mtune=cpu
Προγραμματισμός και βελτιστοποίηση για μια συγκεκριμένη CPU MIPS.
-mfix7000
-mno-fix7000
Προκαλεί την εισαγωγή nops εάν η ανάγνωση του μητρώου προορισμού μιας οδηγίας mfhi ή mflo συμβαίνει στις δύο επόμενες οδηγίες.
-mfix-rm7000
-mno-fix-rm7000
Προκαλεί την εισαγωγή nops εάν μια οδηγία dmult ή dmultu ακολουθείται από μια οδηγία φόρτωσης.
-mfix-r5900
-mno-fix-r5900
Μην επιχειρήσετε να προγραμματίσετε την προηγούμενη οδηγία στην καθυστέρηση της οδηγίας διακλάδωσης που τοποθετείται στο τέλος μιας μικρής επανάληψης έξι οδηγιών ή λιγότερο και πάντα προγραμματίστε μια οδηγία "nop" εκεί. Το σφάλμα της μικρής επανάληψης, υπό ορισμένες συνθήκες, προκαλεί την εκτέλεση των επαναλήψεων μόνο μία ή δύο φορές, λόγω ενός σφάλματος υλικού στο τσιπ R5900.
-mdebug
-no-mdebug
Προκαλεί την αποστολή της εξόδου στυλ stabs σε μια ενότητα ECOFF-style .mdebug αντί για τις τυπικές ενότητες ELF .stabs.
-mpdr
-mno-pdr
Ελέγχει τη δημιουργία των τμημάτων ".pdr".
-mgp32
-mfp32
Κανονικά, το μέγεθος των καταχωρητών συμπεραίνεται από την ISA και την ABI, αλλά αυτές οι σημαίες επιβάλλουν μια συγκεκριμένη ομάδα καταχωρητών να αντιμετωπίζεται ως 32 bit σε κάθε περίπτωση. Η επιλογή -mgp32 ελέγχει το μέγεθος των καταχωρητών γενικής χρήσης και η επιλογή -mfp32 ελέγχει το μέγεθος των καταχωρητών κινητής υποδιαστολής.
-mgp64
-mfp64
Κανονικά, το μέγεθος των καταχωρητών συμπεραίνεται από την ISA και την ABI, αλλά αυτές οι σημαίες επιβάλλουν μια συγκεκριμένη ομάδα καταχωρητών να αντιμετωπίζεται ως 64 bit σε κάθε περίπτωση. Η επιλογή -mgp64 ελέγχει το μέγεθος των καταχωρητών γενικής χρήσης και η επιλογή -mfp64 ελέγχει το μέγεθος των καταχωρητών κινητής υποδιαστολής.
-mfpxx
Η επιλογή αυτή, σε συνδυασμό με την επιλογή -mabi=32, επιτρέπει μια παραλλαγή της ABI η οποία θα λειτουργεί σωστά με καταχωρητές κινητής υποδιαστολής που είναι είτε 32 είτε 64 bit.
-modd-spreg
-mno-odd-spreg
Ενεργοποιεί τη χρήση λειτουργιών κινητής υποδιαστολής σε μονές καταχωρητές ακρίβειας, όταν υποστηρίζεται από την ISA. Η επιλογή -mfpxx υπονοεί την επιλογή -mno-odd-spreg, διαφορετικά, η προεπιλογή είναι η -modd-spreg.
-mips16
-no-mips16
Δημιουργεί κώδικα για τον επεξεργαστή MIPS 16. Αυτό ισοδυναμεί με την τοποθέτηση της ".module mips16" στην αρχή του αρχείου assembly. Η επιλογή -no-mips16 απενεργοποιεί αυτήν την επιλογή.
-mmips16e2
-mno-mips16e2
Ενεργοποιεί τη χρήση οδηγιών MIPS16e2 στη λειτουργία MIPS16. Αυτό ισοδυναμεί με την τοποθέτηση της ".module mips16e2" στην αρχή του αρχείου assembly. Η επιλογή -mno-mips16e2 απενεργοποιεί αυτήν την επιλογή.
-mmicromips
-mno-micromips
Δημιουργεί κώδικα για τον επεξεργαστή microMIPS. Αυτό ισοδυναμεί με την τοποθέτηση της ".module micromips" στην αρχή του αρχείου assembly. Η επιλογή -mno-micromips απενεργοποιεί αυτήν την επιλογή. Αυτό ισοδυναμεί με την τοποθέτηση της ".module nomicromips" στην αρχή του αρχείου assembly.
-msmartmips
-mno-smartmips
Ενεργοποιεί την επέκταση SmartMIPS στο σύνολο εντολών MIPS32. Αυτό ισοδυναμεί με την τοποθέτηση της ".module smartmips" στην αρχή του αρχείου assembly. Η επιλογή -mno-smartmips απενεργοποιεί αυτήν την επιλογή.
-mips3d
-no-mips3d
Δημιουργεί κώδικα για την Ειδική Επέκταση MIPS-3D. Αυτό ενημερώνει τον μεταγλωττιστή να αποδέχεται τις οδηγίες MIPS-3D. Η επιλογή -no-mips3d απενεργοποιεί αυτήν την επιλογή.
-mdmx
-no-mdmx
Δημιουργεί κώδικα για την Ειδική Επέκταση MDMX. Αυτό ενημερώνει τον μεταγλωττιστή να αποδέχεται τις οδηγίες MDMX. Η επιλογή -no-mdmx απενεργοποιεί αυτήν την επιλογή.
-mdsp
-mno-dsp
Δημιουργεί κώδικα για την Ειδική Επέκταση DSP Release 1. Αυτό ενημερώνει τον μεταγλωττιστή να αποδέχεται τις οδηγίες DSP Release 1. Η επιλογή -mno-dsp απενεργοποιεί αυτήν την επιλογή.
-mdspr2
-mno-dspr2
Δημιουργεί κώδικα για την Ειδική Επέκταση DSP Release 2. Αυτή η επιλογή υπονοεί την επιλογή -mdsp. Αυτό ενημερώνει τον μεταγλωττιστή να αποδέχεται τις οδηγίες DSP Release 2. Η επιλογή -mno-dspr2 απενεργοποιεί αυτήν την επιλογή.
-mdspr3
-mno-dspr3
Δημιουργεί κώδικα για την Ειδική Επέκταση DSP Release 3. Αυτή η επιλογή υπονοεί τις επιλογές -mdsp και -mdspr2. Αυτό ενημερώνει τον μεταγλωττιστή να αποδέχεται τις οδηγίες DSP Release 3. Η επιλογή -mno-dspr3 απενεργοποιεί αυτήν την επιλογή.
-mmsa
-mno-msa
Δημιουργεί κώδικα για την επέκταση MIPS SIMD Architecture. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες MSA. Το -mno-msa απενεργοποιεί αυτήν την επιλογή.
-mxpa
-mno-xpa
Δημιουργεί κώδικα για την επέκταση MIPS eXtended Physical Address (XPA). Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες XPA. Το -mno-xpa απενεργοποιεί αυτήν την επιλογή.
-mmt
-mno-mt
Δημιουργεί κώδικα για την επέκταση MT Application Specific. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες MT. Το -mno-mt απενεργοποιεί αυτήν την επιλογή.
-mmcu
-mno-mcu
Δημιουργεί κώδικα για την επέκταση MCU Application Specific. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες MCU. Το -mno-mcu απενεργοποιεί αυτήν την επιλογή.
-mcrc
-mno-crc
Δημιουργεί κώδικα για την επέκταση MIPS cyclic redundancy check (CRC) Application Specific. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες CRC. Το -mno-crc απενεργοποιεί αυτήν την επιλογή.
-mginv
-mno-ginv
Δημιουργεί κώδικα για την επέκταση Global INValidate (GINV) Application Specific. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες GINV. Το -mno-ginv απενεργοποιεί αυτήν την επιλογή.
-mloongson-mmi
-mno-loongson-mmi
Δημιουργεί κώδικα για την επέκταση Loongson MultiMedia extensions Instructions (MMI) Application Specific. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες MMI. Το -mno-loongson-mmi απενεργοποιεί αυτήν την επιλογή.
-mloongson-cam
-mno-loongson-cam
Δημιουργεί κώδικα για τις οδηγίες Loongson Content Address Memory (CAM). Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες Loongson CAM. Το -mno-loongson-cam απενεργοποιεί αυτήν την επιλογή.
-mloongson-ext
-mno-loongson-ext
Δημιουργεί κώδικα για τις οδηγίες Loongson EXTensions (EXT). Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες Loongson EXT. Το -mno-loongson-ext απενεργοποιεί αυτήν την επιλογή.
-mloongson-ext2
-mno-loongson-ext2
Δημιουργεί κώδικα για τις οδηγίες Loongson EXTensions R2 (EXT2). Αυτή η επιλογή υπονοεί το -mloongson-ext. Αυτό ενημερώνει τον μεταγλωττιστή ώστε να δέχεται οδηγίες Loongson EXT2. Το -mno-loongson-ext2 απενεργοποιεί αυτήν την επιλογή.
-minsn32
-mno-insn32
Χρησιμοποιεί μόνο κωδικοποιήσεις οδηγιών 32-bit κατά τη δημιουργία κώδικα για τον μικροεπεξεργαστή microMIPS. Αυτή η επιλογή αποτρέπει τη χρήση οποιωνδήποτε οδηγιών 16-bit. Αυτό είναι ισοδύναμο με την τοποθέτηση του ".set insn32" στην αρχή του αρχείου συναρμολόγησης. Το -mno-insn32 απενεργοποιεί αυτήν την επιλογή. Αυτό είναι ισοδύναμο με την τοποθέτηση του ".set noinsn32" στην αρχή του αρχείου συναρμολόγησης. Από προεπιλογή, επιλέγεται το -mno-insn32, επιτρέποντας τη χρήση όλων των οδηγιών.
--construct-floats
--no-construct-floats
Η επιλογή --no-construct-floats απενεργοποιεί την κατασκευή σταθερών διπλού τύπου κινητής υποδιαστολής, φορτώνοντας τα δύο μισά της τιμής στις δύο μονές καταχωρητές κινητής υποδιαστολής που αποτελούν την διπλή καταχωρητή. Από προεπιλογή, η επιλογή --construct-floats είναι επιλεγμένη, επιτρέποντας την κατασκευή αυτών των σταθερών κινητής υποδιαστολής.
--relax-branch
--no-relax-branch
Η επιλογή --relax-branch ενεργοποιεί την χαλάρωση των κλάδων εκτός εύρους. Από προεπιλογή, επιλέγεται η --no-relax-branch, προκαλώντας την εμφάνιση σφάλματος για οποιονδήποτε κλάδο εκτός εύρους.
-mignore-branch-isa
-mno-ignore-branch-isa
Αγνοήστε τους ελέγχους κλάδων για μη έγκυρες μεταβάσεις μεταξύ τρόπων ISA. Η σημασιολογία των κλάδων δεν προβλέπει μια εναλλαγή τρόπου ISA, επομένως στις περισσότερες περιπτώσεις, ο τρόπος ISA στον οποίο έχει κωδικοποιηθεί ένας κλάδος πρέπει να είναι ο ίδιος με τον τρόπο ISA της ετικέτας προορισμού του κλάδου. Επομένως, το GAS έχει υλοποιημένους ελέγχους που επαληθεύουν κατά τη συναρμολόγηση κλάδων ότι οι δύο τρόποι ISA ταιριάζουν. Η επιλογή -mignore-branch-isa απενεργοποιεί αυτούς τους ελέγχους. Από προεπιλογή, επιλέγεται η -mno-ignore-branch-isa, προκαλώντας την εμφάνιση σφάλματος για οποιονδήποτε μη έγκυρο κλάδο που απαιτεί μια μετάβαση μεταξύ τρόπων ISA.
-mnan=encoding
Επιλέξτε μεταξύ της μορφής κωδικοποίησης NaN IEEE 754-2008 (-mnan=2008) ή της παλαιάς (-mnan=legacy) μορφής κωδικοποίησης NaN. Η τελευταία είναι η προεπιλογή.
--emulation=name
Αυτή η επιλογή χρησιμοποιούνταν παλαιότερα για την εναλλαγή μεταξύ εξόδου ELF και ECOFF σε στοχους όπως το IRIX 5 που υποστήριζε και τα δύο. Η υποστήριξη MIPS ECOFF αφαιρέθηκε στο GAS 2.24, επομένως η επιλογή δεν έχει πλέον ιδιαίτερη χρησιμότητα. Διατηρείται για λόγους συμβατότητας.
Οι διαθέσιμες ονομασίες διαμόρφωσης είναι: mipself, mipslelf και mipsbelf. Η επιλογή του mipself δεν έχει πλέον κανένα αποτέλεσμα,
καθώς η έξοδος είναι πάντα ELF. Οι επιλογές mipslelf και mipsbelf επιλέγουν την έξοδο little- και big-endian αντίστοιχα, αλλά οι επιλογές -EL και -EB είναι πλέον οι προτιμώμενες.
-nocpp
Το as αγνοεί αυτήν την επιλογή. Γίνεται αποδεκτή για λόγους συμβατότητας με τα εγγενή εργαλεία.
--trap
--no-trap
--break
--no-break
Ελέγξτε τον τρόπο διαχείρισης της υπερχείλισης πολλαπλασιασμού και της διαίρεσης δια μηδενός. Οι επιλογές --trap ή --no-break (οι οποίες είναι συνώνυμες) ενεργοποιούν μια εξαίρεση διακοπής (και λειτουργούν μόνο για επίπεδο αρχιτεκτονικής συνόλου εντολών 2 και άνω). Οι επιλογές --break ή --no-trap (επίσης συνώνυμες, και είναι η προεπιλογή) ενεργοποιούν μια εξαίρεση διακοπής.
-n Όταν χρησιμοποιείται αυτή η επιλογή, το as θα εκδίδει μια προειδοποίηση κάθε φορά που δημιουργεί μια εντολή nop
από μια μακροεντολή.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as είναι διαμορφωμένο για έναν επεξεργαστή LoongArch.
-fpic
-fPIC
Δημιουργήστε κώδικα ανεξάρτητο θέσης
-fno-pic
Μην δημιουργείτε κώδικα ανεξάρτητο θέσης (προεπιλογή)
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as είναι διαμορφωμένο για έναν επεξεργαστή Meta.
"-mcpu=metac11"
Δημιουργήστε κώδικα για το Meta 1.1.
"-mcpu=metac12"
Δημιουργήστε κώδικα για το Meta 1.2.
"-mcpu=metac21"
Δημιουργήστε κώδικα για το Meta 2.1.
"-mfpu=metac21"
Επιτρέψτε στον κώδικα να χρησιμοποιεί το υλικό FPU του Meta 2.1.
Δείτε τις σελίδες πληροφοριών για την τεκμηρίωση των συγκεκριμένων επιλογών MMIX.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as είναι διαμορφωμένο για έναν επεξεργαστή NDS32.
"-O1"
Βελτιστοποιήστε για απόδοση.
"-Os"
Βελτιστοποιήστε για χώρο.
"-EL"
Δημιουργήστε έξοδο δεδομένων little endian.
"-EB"
Δημιουργήστε έξοδο δεδομένων little endian.
"-mpic"
Δημιουργήστε PIC.
"-mno-fp-as-gp-relax"
Καταστείλετε την χαλάρωση fp-as-gp για αυτό το αρχείο.
"-mb2bb-relax"
Βελτιστοποίηση διαδοχικών κλάδων.
"-mno-all-relax"
Καταστέλλει όλες τις χαλαρώσεις για αυτό το αρχείο.
"-march=<όνομα αρχιτεκτονικής>"
Συντάσσει για αρχιτεκτονική <όνομα αρχιτεκτονικής> η οποία μπορεί να είναι v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s.
"-mbaseline=<βασική έκδοση>"
Συντάσσει για βασική έκδοση <βασική έκδοση> η οποία μπορεί να είναι v2, v3, v3m.
"-mfpu-freg=FREG"
Καθορίζει μια διαμόρφωση FPU.
"0 8 SP / 4 DP καταχωρητές"
"1 16 SP / 8 DP καταχωρητές"
"2 32 SP / 16 DP καταχωρητές"
"3 32 SP / 32 DP καταχωρητές"
"-mabi=abi"
Καθορίζει μια έκδοση abi <abi> η οποία μπορεί να είναι v1, v2, v2fp, v2fpp.
"-m[no-]mac"
Ενεργοποιεί/Απενεργοποιεί την υποστήριξη για πολλαπλασιαστικές εντολές.
"-m[no-]div"
Ενεργοποιεί/Απενεργοποιεί την υποστήριξη για εντολές διαίρεσης.
"-m[no-]16bit-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση 16-bit.
"-m[no-]dx-regs"
Ενεργοποιεί/Απενεργοποιεί τους καταχωρητές d0/d1.
"-m[no-]perf-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση απόδοσης.
"-m[no-]perf2-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση απόδοσης 2.
"-m[no-]string-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση συμβολοσειράς.
"-m[no-]reduced-regs"
Ενεργοποιεί/Απενεργοποιεί την επιλογή διαμόρφωσης μειωμένων καταχωρητών (GPR16).
"-m[no-]audio-isa-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση AUDIO ISA.
"-m[no-]fpu-sp-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση FPU SP.
"-m[no-]fpu-dp-ext"
Ενεργοποιεί/Απενεργοποιεί την επέκταση FPU DP.
"-m[no-]fpu-fma"
Ενεργοποιεί/Απενεργοποιεί τις εντολές προσθετικής πολλαπλασιασμού FPU.
"-mall-ext"
Ενεργοποιεί όλες τις επεκτάσεις και την υποστήριξη εντολών.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν ο μεταγλωττιστής έχει διαμορφωθεί για έναν επεξεργαστή PowerPC.
-a32
Δημιουργεί ELF32 ή XCOFF32.
-a64
Δημιουργεί ELF64 ή XCOFF64.
-K PIC
Ορίζει το EF\_PPC\_RELOCATABLE\_LIB στις σημαίες ELF.
-mpwrx | -mpwr2
Δημιουργεί κώδικα για POWER/2 (RIOS2).
-mpwr
Δημιουργεί κώδικα για POWER (RIOS1).
-m601
Δημιουργεί κώδικα για PowerPC 601.
-mppc, -mppc32, -m603, -m604
Δημιουργεί κώδικα για PowerPC 603/604.
-m403, -m405
Δημιουργεί κώδικα για PowerPC 403/405.
-m440
Δημιουργεί κώδικα για PowerPC 440. BookE και ορισμένες εντολές 405.
-m464
Δημιουργεί κώδικα για PowerPC 464.
-m476
Δημιουργεί κώδικα για PowerPC 476.
-m7400, -m7410, -m7450, -m7455
Δημιουργεί κώδικα για PowerPC 7400/7410/7450/7455.
-m750cl, -mgekko, -mbroadway
Δημιουργεί κώδικα για PowerPC 750CL/Gekko/Broadway.
-m821, -m850, -m860
Δημιουργεί κώδικα για PowerPC 821/850/860.
-mppc64, -m620
Δημιουργεί κώδικα για PowerPC 620/625/630.
-me200z2, -me200z4
Δημιουργεί κώδικα για παραλλαγές e200, e200z2 με LSP, e200z4 με SPE.
-me300
Δημιουργεί κώδικα για την οικογένεια PowerPC e300.
-me500, -me500x2
Δημιουργεί κώδικα για το βασικό σύμπλεγμα Motorola e500.
-me500mc
Δημιουργεί κώδικα για το βασικό σύμπλεγμα Freescale e500mc.
-me500mc64
Δημιουργεί κώδικα για το βασικό σύμπλεγμα Freescale e500mc64.
-me5500
Δημιουργεί κώδικα για το βασικό σύμπλεγμα Freescale e5500.
-me6500
Δημιουργεί κώδικα για το βασικό σύμπλεγμα Freescale e6500.
-mlsp
Ενεργοποιεί τις εντολές LSP. (Απενεργοποιεί τα SPE και SPE2.)
-mspe
Δημιουργεί κώδικα για τις εντολές Motorola SPE. (Απενεργοποιεί το LSP.)
-mspe2
Δημιουργεί κώδικα για τις εντολές Freescale SPE2. (Απενεργοποιεί το LSP.)
-mtitan
Δημιουργεί κώδικα για το βασικό σύμπλεγμα AppliedMicro Titan.
-mppc64bridge
Δημιουργεί κώδικα για PowerPC 64, συμπεριλαμβανομένων των εντολών γέφυρας.
-mbooke
Δημιουργεί κώδικα για 32-bit BookE.
-ma2
Δημιουργία κώδικα για αρχιτεκτονική A2.
-maltivec
Δημιουργία κώδικα για επεξεργαστές με οδηγίες AltiVec.
-mvle
Δημιουργία κώδικα για επεξεργαστές με οδηγίες Freescale PowerPC VLE.
-mvsx
Δημιουργία κώδικα για επεξεργαστές με οδηγίες Vector-Scalar (VSX).
-mhtm
Δημιουργία κώδικα για επεξεργαστές με οδηγίες Hardware Transactional Memory.
-mpower4, -mpwr4
Δημιουργία κώδικα για αρχιτεκτονική Power4.
-mpower5, -mpwr5, -mpwr5x
Δημιουργία κώδικα για αρχιτεκτονική Power5.
-mpower6, -mpwr6
Δημιουργία κώδικα για αρχιτεκτονική Power6.
-mpower7, -mpwr7
Δημιουργία κώδικα για αρχιτεκτονική Power7.
-mpower8, -mpwr8
Δημιουργία κώδικα για αρχιτεκτονική Power8.
-mpower9, -mpwr9
Δημιουργία κώδικα για αρχιτεκτονική Power9.
-mpower10, -mpwr10
Δημιουργία κώδικα για αρχιτεκτονική Power10.
-mpower11, -mpwr11
Δημιουργία κώδικα για αρχιτεκτονική Power11.
-mfuture
Δημιουργία κώδικα για την αρχιτεκτονική 'future'.
-mcell
-mcell
Δημιουργία κώδικα για την αρχιτεκτονική Cell Broadband Engine.
-mcom
Δημιουργία οδηγιών κοινών για Power/PowerPC.
-many
Δημιουργία κώδικα για οποιαδήποτε αρχιτεκτονική (PWR/PWRX/PPC).
-mregnames
Επιτρέπει τη χρήση συμβολικών ονομάτων για τις καταχωρητές.
-mno-regnames
Δεν επιτρέπει τη χρήση συμβολικών ονομάτων για τις καταχωρητές.
-mrelocatable
Υποστήριξη για την επιλογή -mrelocatable του GCC.
-mrelocatable-lib
Υποστήριξη για την επιλογή -mrelocatable-lib του GCC.
-memb
Ορίζει το bit PPC_EMB στις σημαίες ELF.
-mlittle, -mlittle-endian, -le
Δημιουργία κώδικα για μηχανή little endian.
-mbig, -mbig-endian, -be
Δημιουργία κώδικα για μηχανή big endian.
-nops=count
Εάν μια οδηγία ευθυγράμμισης εισάγει περισσότερες από count οδηγίες nop, τοποθετήστε μια διακλάδωση στην αρχή για να παρακάμψετε την εκτέλεση των οδηγιών nop.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή RISC-V.
-fpic
-fPIC
Δημιουργία κώδικα ανεξάρτητου θέσης.
-fno-pic
Μην δημιουργείτε κώδικα ανεξάρτητο θέσης (προεπιλογή).
-march=ISA|Profiles|Profiles_ISA
Επιλέξτε τη βασική ISA, όπως καθορίζεται από το ISA ή το Profiles ή το Profiles_ISA. Για παράδειγμα -march=rv32ima -march=RVI20U64 -march=RVI20U64_d. Εάν αυτή η επιλογή και τα χαρακτηριστικά αρχιτεκτονικής δεν έχουν οριστεί, τότε ο μεταγλωττιστής θα ελέγξει την προεπιλεγμένη ρύθμιση διαμόρφωσης --with-arch=ISA.
-misa-spec=ISAspec
Επιλέξτε την προεπιλεγμένη έκδοση προδιαγραφών ISA. Εάν η έκδοση του ISA δεν έχει οριστεί από το -march, τότε ο μεταγλωττιστής βοηθά στην καθορισμό της έκδοσης σύμφωνα με την επιλεγμένη προεπιλεγμένη προδιαγραφή. Εάν αυτή η επιλογή δεν έχει οριστεί, τότε ο μεταγλωττιστής θα ελέγξει την προεπιλεγμένη ρύθμιση διαμόρφωσης --with-isa-spec=ISAspec.
-mpriv-spec=PRIVspec
Επιλέξτε την έκδοση προδιαγραφών προνομίων. Μπορούμε να αποφασίσουμε εάν το CSR είναι έγκυρο ή όχι, σύμφωνα με την επιλεγμένη προδιαγραφή. Εάν αυτή η επιλογή και τα χαρακτηριστικά προνομίων δεν έχουν οριστεί, τότε ο μεταγλωττιστής θα ελέγξει την προεπιλεγμένη ρύθμιση διαμόρφωσης --with-priv-spec=PRIVspec.
-mabi=ABI
Επιλέγει το ABI, το οποίο είναι είτε "ilp32" είτε "lp64", ακολουθούμενο προαιρετικά από "f", "d" ή "q" για να υποδείξει υπολογιστική σύμβαση κινητής υποδιαστολής ακριβείας, είτε καμία είτε "e" για να υποδείξει τη σύμβαση κινητής υποδιαστολής soft-float ("e" υποδεικνύει ένα ABI RVE soft-float).
-mrelax
Εκμεταλλευτείτε τις χαλαρώσεις του συνδέσμου (linker relaxations) για να μειώσετε τον αριθμό των εντολών που απαιτούνται για να δημιουργηθούν οι διευθύνσεις συμβόλων. (προεπιλογή)
-mno-relax
Μην κάνετε χαλαρώσεις του συνδέσμου.
-march-attr
Δημιουργήστε το προεπιλεγμένο περιεχόμενο για την ενότητα ιδιοτήτων RISC-V ELF, εάν οι οδηγίες .attribute δεν έχουν οριστεί. Αυτή η ενότητα χρησιμοποιείται για την καταγραφή πληροφοριών που ένας σύνδεσμος ή ένας φορτωτής χρόνου εκτέλεσης (runtime loader) χρειάζεται για να ελέγξει τη συμβατότητα. Αυτές οι πληροφορίες περιλαμβάνουν την συμβολοσειρά ISA, την απαίτηση στοίβα, τις μη ευθυγραμμισμένες προσβάσεις μνήμης και τις κύριες, δευτερεύουσες και αναθεωρημένες εκδόσεις των προνομιούχων προδιαγραφών.
-mno-arch-attr
Μην δημιουργείτε την προεπιλεγμένη ενότητα ιδιοτήτων RISC-V ELF εάν οι οδηγίες .attribute δεν έχουν οριστεί.
-mcsr-check
Ενεργοποιήστε τον έλεγχο CSR για τα εξαρτώμενα από την ISA CSR και τα CSR μόνο για ανάγνωση. Τα εξαρτώμενα από την ISA CSR είναι έγκυρα μόνο όταν έχει οριστεί η συγκεκριμένη ISA. Τα CSR μόνο για ανάγνωση δεν μπορούν να γραφτούν από τις εντολές CSR.
-mno-csr-check
Μην κάνετε ελέγχους CSR.
-mlittle-endian
Δημιουργήστε κώδικα για μια μηχανή little endian.
-mbig-endian
Δημιουργήστε κώδικα για μια μηχανή big endian.
Δείτε τις σελίδες πληροφοριών για την τεκμηρίωση των επιλογών ειδικών για το RX.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει ρυθμιστεί για την οικογένεια επεξεργαστών s390.
-m31
-m64
Επιλέξτε το μέγεθος λέξης, είτε 31/32 bit είτε 64 bit.
-mesa
-mzarch
Επιλέξτε τη λειτουργία αρχιτεκτονικής, είτε την Αρχιτεκτονική Επιχειρηματικού Συστήματος (esa) είτε τη λειτουργία αρχιτεκτονικής z (zarch).
-march=processor
Καθορίστε ποια παραλλαγή επεξεργαστή s390 είναι ο στόχος, g5 (ή arch3), g6, z900 (ή arch5), z990 (ή arch6), z9-109, z9-ec (ή arch7), z10 (ή arch8), z196 (ή arch9), zEC12 (ή arch10), z13 (ή arch11), z14 (ή arch12), z15 (ή arch13), z16 (ή arch14) ή z17 (ή arch15).
-mregnames
-mno-regnames
Επιτρέψτε ή μην επιτρέπετε συμβολικά ονόματα για τους καταχωρητές.
-mwarn-areg-zero
Εμφανίστε προειδοποίηση κάθε φορά που η παράμετρος για έναν καταχωρητή βάσης ή δείκτη έχει καθοριστεί, αλλά υπολογίζεται στο μηδέν.
-mwarn-regtype-mismatch=strict
-mwarn-regtype-mismatch=relaxed
-mwarn-regtype-mismatch=no
-mno-warn-regtype-mismatch
Ελέγχει εάν ο μεταγλωττιστής εκτελεί ελέγχους τύπου ονόματος καταχωρητή και δημιουργεί ένα μήνυμα προειδοποίησης σε περίπτωση ασυμφωνίας με τον τύπο καταχωρητή της παραμέτρου. Η προεπιλογή (η οποία μπορεί να επαναφερθεί χρησιμοποιώντας την παράμετρο relaxed) είναι να εκτελούνται χαλαροί έλεγχοι τύπου ονόματος καταχωρητή, οι οποίοι επιτρέπουν στα ονόματα καταχωρητών κινητής υποδιαστολής (FPR) %f0 έως %f15 να καθορίζονται ως παράμετρος για τις παραμέτρους καταχωρητών διανυσμάτων (VR) και στα ονόματα καταχωρητών διανυσμάτων (VR) %v0 έως %v15 να καθορίζονται ως παράμετρος για τις παραμέτρους καταχωρητών κινητής υποδιαστολής (FPR). Αυτό είναι αποδεκτό καθώς τα FPR είναι ενσωματωμένα στο κάτω μισό του VR. Χρησιμοποιώντας την παράμετρο strict, εκτελούνται αυστηροί έλεγχοι τύπου ονόματος καταχωρητή. Η παράμετρος no, η οποία είναι ισοδύναμη με την παράμετρο -mno-warn-regtype-mismatch, απενεργοποιεί όλους τους ελέγχους τύπου ονόματος καταχωρητή.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει ρυθμιστεί για έναν επεξεργαστή TMS320C6000.
-march=arch
Ενεργοποιεί (μόνο) τις εντολές από την αρχιτεκτονική arch. Από προεπιλογή, επιτρέπονται όλες οι εντολές.
Οι ακόλουθες τιμές του arch είναι αποδεκτές: "c62x", "c64x", "c64x+", "c67x", "c67x+", "c674x".
-mdsbt
-mno-dsbt
Η επιλογή -mdsbt προκαλεί την δημιουργία του χαρακτηριστικού "Tag_ABI_DSBT" με τιμή 1 από τον μεταγλωττιστή, υποδεικνύοντας ότι ο κώδικας χρησιμοποιεί διευθυνσιοδότηση DSBT. Η επιλογή -mno-dsbt, η οποία είναι η προεπιλογή, προκαλεί την δημιουργία του χαρακτηριστικού με τιμή 0, υποδεικνύοντας ότι ο κώδικας δεν χρησιμοποιεί διευθυνσιοδότηση DSBT. Ο συνδετήρας θα εκπέμψει μια προειδοποίηση εάν συνδεθούν αντικείμενα διαφορετικού τύπου (DSBT και μη-DSBT).
-mpid=no
-mpid=near
-mpid=far
Η επιλογή -mpid= προκαλεί την δημιουργία του χαρακτηριστικού "Tag_ABI_PID" με τιμή που υποδεικνύει τη μορφή διευθυνσιοδότησης δεδομένων που χρησιμοποιεί ο κώδικας. Η επιλογή -mpid=no, η οποία είναι η προεπιλογή, υποδεικνύει διευθυνσιοδότηση δεδομένων που εξαρτάται από τη θέση, η -mpid=near υποδεικνύει ανεξάρτητη από τη θέση διευθυνσιοδότηση με πρόσβαση στο GOT χρησιμοποιώντας κοντινή διευθυνσιοδότηση DP και η -mpid=far υποδεικνύει ανεξάρτητη από τη θέση διευθυνσιοδότηση με πρόσβαση στο GOT χρησιμοποιώντας απομακρυσμένη διευθυνσιοδότηση DP. Ο συνδετήρας θα εκπέμψει μια προειδοποίηση εάν συνδεθούν αντικείμενα που έχουν κατασκευαστεί με διαφορετικές ρυθμίσεις αυτής της επιλογής.
-mpic
-mno-pic
Η επιλογή -mpic προκαλεί την δημιουργία του χαρακτηριστικού "Tag_ABI_PIC" με τιμή 1 υποδεικνύοντας ότι ο κώδικας χρησιμοποιεί ανεξάρτητη από τη θέση διευθυνσιοδότηση κώδικα. Η επιλογή "-mno-pic", η οποία είναι η προεπιλογή, προκαλεί την δημιουργία του χαρακτηριστικού με τιμή 0, υποδεικνύοντας εξαρτώμενη από τη θέση διευθυνσιοδότηση κώδικα. Ο συνδετήρας θα εκπέμψει μια προειδοποίηση εάν συνδεθούν αντικείμενα διαφορετικού τύπου (εξαρτώμενα από τη θέση και ανεξάρτητα από τη θέση).
-mbig-endian
-mlittle-endian
Δημιουργία κώδικα για την καθορισμένη διάταξη byte. Η προεπιλογή είναι little-endian.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή TILE-Gx.
-m32 | -m64
Επιλογή του μεγέθους λέξης, είτε 32 bit είτε 64 bit.
-EB | -EL
Επιλογή της διάταξης byte, είτε big-endian (-EB) είτε little-endian (-EL).
Η ακόλουθη επιλογή είναι διαθέσιμη όταν το as έχει διαμορφωθεί για έναν επεξεργαστή Visium.
-mtune=arch
Αυτή η επιλογή καθορίζει την αρχιτεκτονική-στόχο. Εάν γίνει μια προσπάθεια για τη μεταγλώττιση μιας εντολής που δεν θα εκτελεστεί στην αρχιτεκτονική-στόχο, ο μεταγλωττιστής θα εκδώσει ένα μήνυμα σφάλματος.
Τα ακόλουθα ονόματα αναγνωρίζονται: "mcm24", "mcm", "gr5", "gr6".
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή Xtensa.
--text-section-literals | --no-text-section-literals
Έλεγχος της διαχείρισης των δεξαμενών λογοτύπων. Η προεπιλογή είναι --no-text-section-literals, η οποία τοποθετεί τα λογότυπα σε ξεχωριστές ενότητες στο αρχείο εξόδου. Αυτό επιτρέπει τη τοποθέτηση της δεξαμενής λογοτύπων σε μια RAM/ROM δεδομένων. Με το --text-section-literals, τα λογότυπα είναι διασκορπισμένα στην ενότητα κειμένου, προκειμένου να διατηρούνται όσο το δυνατόν πιο κοντά στις αναφορές τους. Αυτό μπορεί να είναι απαραίτητο για μεγάλα αρχεία συναρμολόγησης, όπου τα λογότυπα θα ήταν διαφορετικά εκτός εμβέλειας των εντολών "L32R" στην ενότητα κειμένου. Τα λογότυπα ομαδοποιούνται σε δεξαμενές μετά από οδηγίες ".literal_position" ή πριν από οδηγίες "ENTRY". Αυτές οι επιλογές επηρεάζουν μόνο τα λογότυπα στα οποία γίνεται αναφορά μέσω των εντολών PC-relative "L32R". τα λογότυπα για τις εντολές "L32R" σε απόλυτη λειτουργία αντιμετωπίζονται ξεχωριστά.
`--auto-litpools | --no-auto-litpools`
Ελέγχει τον τρόπο με τον οποίο αντιμετωπίζονται οι κυριολεκτικές δεξαμενές. Η προεπιλογή είναι --no-auto-litpools, η οποία, στην απουσία του --text-section-literals, τοποθετεί τις κυριολεκτικές τιμές σε ξεχωριστές ενότητες στο αρχείο εξόδου. Αυτό επιτρέπει στην κυριολεκτική δεξαμενή να τοποθετηθεί σε μια περιοχή δεδομένων RAM/ROM. Με το --auto-litpools, οι κυριολεκτικές τιμές διασκορπίζονται στην ενότητα κειμένου προκειμένου να διατηρούνται όσο το δυνατόν πιο κοντά στις αντίστοιχες αναφορές τους, και δεν απαιτούνται ρητές οδηγίες .literal_position. Αυτό μπορεί να είναι απαραίτητο για πολύ μεγάλες συναρτήσεις, όπου μια ενιαία κυριολεκτική δεξαμενή στην αρχή της συνάρτησης μπορεί να μην είναι προσβάσιμη από τις οδηγίες "L32R" στο τέλος. Αυτές οι επιλογές επηρεάζουν μόνο τις κυριολεκτικές τιμές στις οποίες γίνεται αναφορά μέσω των εντολών PC-relative "L32R". οι κυριολεκτικές τιμές για τις εντολές απόλυτης λειτουργίας "L32R" αντιμετωπίζονται ξεχωριστά. Όταν χρησιμοποιούνται μαζί με το --text-section-literals, το --auto-litpools έχει προτεραιότητα.
`--absolute-literals | --no-absolute-literals`
Υποδεικνύει στον μεταγλωττιστή εάν οι εντολές "L32R" χρησιμοποιούν απόλυτη ή σχετική με το πρόγραμμα μετρητή (PC) διευθυνσιοδότηση. Εάν ο επεξεργαστής περιλαμβάνει την επιλογή απόλυτης διευθυνσιοδότησης, η προεπιλογή είναι η χρήση των απόλυτων αναδρομών "L32R". Διαφορετικά, μπορούν να χρησιμοποιηθούν μόνο οι αναδρομές "L32R" που σχετίζονται με το πρόγραμμα μετρητή (PC).
`--target-align | --no-target-align`
Ενεργοποιεί ή απενεργοποιεί την αυτόματη ευθυγράμμιση για τη μείωση των ποινών διακλάδωσης με κάποιο κόστος στο μέγεθος του κώδικα. Αυτή η βελτιστοποίηση είναι ενεργοποιημένη από προεπιλογή. Σημειώστε ότι ο μεταγλωττιστής θα ευθυγραμμίζει πάντα τις εντολές όπως το "LOOP" που έχουν σταθερές απαιτήσεις ευθυγράμμισης.
`--longcalls | --no-longcalls`
Ενεργοποιεί ή απενεργοποιεί τη μετατροπή των εντολών κλήσης για να επιτρέψει κλήσεις σε μεγαλύτερο εύρος διευθύνσεων. Αυτή η επιλογή θα πρέπει να χρησιμοποιείται όταν οι προορισμοί κλήσης ενδέχεται να βρίσκονται εκτός εύρους. Μπορεί να υποβαθμίσει τόσο το μέγεθος όσο και την απόδοση του κώδικα, αλλά ο συνδετήρας μπορεί γενικά να βελτιστοποιήσει την περιττή επιβάρυνση όταν μια κλήση καταλήγει εντός εύρους. Η προεπιλογή είναι --no-longcalls.
`--transform | --no-transform`
Ενεργοποιεί ή απενεργοποιεί όλες τις μετατροπές εντολών Xtensa του μεταγλωττιστή, συμπεριλαμβανομένης της χαλάρωσης και της βελτιστοποίησης. Η προεπιλογή είναι --transform. το --no-transform θα πρέπει να χρησιμοποιείται μόνο στις σπάνιες περιπτώσεις στις οποίες οι εντολές πρέπει να είναι ακριβώς όπως καθορίζονται στην πηγή συναρμολόγησης. Η χρήση του --no-transform προκαλεί σφάλματα για τις τιμές των τελεστών εντολών εκτός εύρους.
`--rename-section oldname=newname`
Μετονομάζει την ενότητα oldname σε newname. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί πολλές φορές για να μετονομαστούν πολλές ενότητες.
`--trampolines | --no-trampolines`
Ενεργοποιεί ή απενεργοποιεί τη μετατροπή των εντολών μετάβασης για να επιτρέψει μεταβάσεις σε μεγαλύτερο εύρος διευθύνσεων. Αυτή η επιλογή θα πρέπει να χρησιμοποιείται όταν οι προορισμοί μετάβασης ενδέχεται να βρίσκονται εκτός εύρους. Σε περίπτωση που δεν υπάρχουν τέτοιες μεταβάσεις, αυτή η επιλογή δεν επηρεάζει το μέγεθος ή την απόδοση του κώδικα. Η προεπιλογή είναι --trampolines.
--abi-windowed | --abi-call0
Επιλέξτε την ετικέτα ABI που θα γραφτεί στην ενότητα ".xtensa.info". Η ετικέτα ABI υποδεικνύει την ABI του κώδικα assembly. Εάν επιχειρηθεί η σύνδεση αρχείων αντικειμένων με ασύμβατες ετικέτες ABI, εκδίδεται μια προειδοποίηση από το συνδετή. Η προεπιλεγμένη ABI επιλέγεται από τη διαμόρφωση του πυρήνα Xtensa.
Οι ακόλουθες επιλογές είναι διαθέσιμες όταν το as έχει διαμορφωθεί για έναν επεξεργαστή Z80.
@chapter Χαρακτηριστικά Εξαρτώμενα από τον Z80
Επιλογές Γραμμής Εντολών
-march=CPU[-EXT...][+EXT...]
Αυτή η επιλογή καθορίζει τον στοχευόμενο επεξεργαστή. Ο μεταγλωττιστής θα εκδώσει ένα μήνυμα σφάλματος εάν γίνει προσπάθεια μεταγλώττισης μιας εντολής που δεν θα εκτελεστεί στον στοχευόμενο επεξεργαστή. Τα ακόλουθα ονόματα επεξεργαστών αναγνωρίζονται: "z80", "z180", "ez80", "gbz80", "z80n", "r800". Εκτός από το βασικό σύνολο εντολών, ο μεταγλωττιστής μπορεί να διαμορφωθεί ώστε να δέχεται ορισμένα βοηθητικά προγράμματα εντολών. Για παράδειγμα, το "-march=z180+sli+infc" επεκτείνει το z180 με τις εντολές SLI και την IN F,(C). Οι ακόλουθες επεκτάσεις υποστηρίζονται επί του παρόντος: "full" (όλες οι γνωστές εντολές), "adl" (ADL CPU mode από προεπιλογή, μόνο για eZ80), "sli" (εντολή γνωστή ως SLI, SLL ή SL1), "xyhl" (εντολές με τα μισά των καταχωρητών ευρετηρίου: IXL, IXH, IYL, IYH), "xdcb" (εντολές όπως η RotOp (II+d),R και η BitOp n,(II+d),R), "infc" (εντολή IN F,(C) ή IN (C)), "outc0" (εντολή OUT (C),0). Σημειώστε ότι αντί να επεκτείνει ένα βασικό σύνολο εντολών, τα βοηθητικά προγράμματα εντολών που ξεκινούν με "-" ανακαλούν τη σχετική λειτουργικότητα: "-march=z80-full+xyhl" αφαιρεί πρώτα όλες τις προεπιλεγμένες επεκτάσεις και προσθέτει υποστήριξη μόνο για τα μισά των καταχωρητών ευρετηρίου.
Εάν αυτή η επιλογή δεν καθοριστεί, υποτίθεται ότι είναι "-march=z80+xyhl+infc".
-local-prefix=prefix
Επισημάνετε όλες τις ετικέτες με το καθορισμένο πρόθεμα ως τοπικές. Ωστόσο, μια τέτοια ετικέτα μπορεί να επισημανθεί ρητά ως καθολική στον κώδικα. Αυτή η επιλογή δεν αλλάζει το προεπιλεγμένο πρόθεμα για τοπικές ετικέτες ".L", απλώς προσθέτει ένα νέο.
-colonless
Αποδοχή ετικετών χωρίς άνω τελεία. Όλα τα σύμβολα στην αρχή της γραμμής αντιμετωπίζονται ως ετικέτες.
-sdcc
Αποδοχή κώδικα assembly που παράγεται από το SDCC.
-fp-s=FORMAT
Μορφή αριθμών κινητής υποδιαστολής απλής ακρίβειας. Προεπιλογή: ieee754 (32 bit).
-fp-d=FORMAT
Μορφή αριθμών κινητής υποδιαστολής διπλής ακρίβειας. Προεπιλογή: ieee754 (64 bit).
ΔΕΣ ΕΠΙΣΗΣ
gcc(1), ld(1) και τις καταχωρήσεις Info για τα binutils και ld.
ΠΝΕΥΜΑΤΙΚΑ ΔΙΚΑΙΩΜΑΤΑ
Πνευματικά Δικαιώματα (c) 1991-2025 Free Software Foundation, Inc.
Παραχωρείται η άδεια για αντιγραφή, διανομή και/ή τροποποίηση αυτού του εγγράφου σύμφωνα με τους όρους της GNU Free Documentation License, Έκδοση 1.3 ή οποιασδήποτε μεταγενέστερης έκδοσης που δημοσιεύθηκε από το Free Software Foundation. με κανένα Αναλλοίωτο Τμήμα, χωρίς Κείμενα Εξωφύλλου και χωρίς Κείμενα Οπισθοφύλλου. Ένα αντίγραφο της άδειας περιλαμβάνεται στην ενότητα με τίτλο "GNU Free Documentation License".