as AS - assembler GNU portabel.
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 ...]
Targetkan opsi AArch64:
[-EB|-EL] [-mabi=ABI]
Opsi Targetkan Alfa:
[-mcpu] [-mdebug | -no-mdebug] [-replace | -noreplace] [-relax] [-g] [-Gsize] [-F] [-32addr]
Targetkan opsi ARC:
[-mcpu=cpu] [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS] [-mcode-density] [-mrelax] [-EB|-EL]
Opsi ARM target:
[-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]
Targetkan opsi Blackfin:
[-mcpu=processor[-sirevision]] [-mfdpic] [-mno-fdpic] [-mnopic]
Targetkan opsi BPF:
[-EL] [-EB]
Targetkan opsi CRIS:
[--underscore | --no-underscore] [--pic] [-N] [--emulation=criself | --emulation=crisaout] [--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]
Targetkan opsi 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]
Opsi D10V target:
[-O]
Opsi D30V target:
[-O|-n|-N]
Targetkan opsi EPIPHANY:
[-mepiphany|-mepiphany16]
Targetkan opsi H8/300:
[-h-tick-hex]
Targetkan opsi i386:
[--32|--x32|--64] [-n] [-march=CPU[+EXTENSION...]] [-mtune=CPU]
Targetkan opsi 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]
Targetkan opsi IP2K:
[-mip2022|-mip2022ext]
Targetkan opsi M32C:
[-m32c|-m16c] [-relax] [-h-tick-hex]
Targetkan opsi M32R:
[--m32rx|--[no-]warn-explicit-parallel-conflicts| --W[n]p]
Targetkan opsi M680X0:
[-l] [-m68000|-m68010|-m68020|...]
Targetkan opsi 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]
Targetkan opsi MCORE:
[-jsri2bsr] [-sifilter] [-relax] [-mcpu=[210|340]]
Opsi Meta Target:
[-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu]
Opsi MICROBLAZE target:
Opsi MIPS target:
[-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]
Opsi target MMIX:
[--fixed-special-register-names] [--globalize-symbols] [--gnu-syntax] [--relax] [--no-predefined-symbols] [--no-expand] [--no-merge-gregs] [-x] [--linker-allocated-gregs]
Targetkan opsi Nios II:
[-relax-all] [-relax-section] [-no-relax] [-EB] [-EL]
Targetkan opsi 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]
Targetkan opsi PDP11:
[-mpic|-mno-pic] [-mall] [-mno-extensions] [-mextension|-mno-extension] [-mcpu] [-mmachine]
Targetkan opsi picoJava:
[-mb|-me]
Targetkan opsi 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]
Targetkan opsi PRU:
[-link-relax] [-mnolink-relax] [-mno-warn-regname-label]
Targetkan opsi RISC-V:
[-fpic|-fPIC|-fno-pic] [-march=ISA] [-mabi=ABI] [-mlittle-endian|-mbig-endian]
Targetkan opsi RL78:
[-mg10] [-m32bit-doubles|-m64bit-doubles]
Opsi RX target:
[-mlittle-endian|-mbig-endian] [-m32bit-doubles|-m64bit-doubles] [-muse-conventional-section-names] [-msmall-data-limit] [-mpid] [-mrelax] [-mint-register=number] [-mgcc-abi|-mrx-abi]
Opsi target s390:
[-m31|-m64] [-mesa|-mzarch] [-march=CPU] [-mregnames|-mno-regnames] [-mwarn-areg-zero]
Opsi SCORE Target:
[-EB][-EL][-FIXDD][-NWARN] [-SCORE5][-SCORE5U][-SCORE7][-SCORE3] [-march=score7][-march=score3] [-USE_R1][-KPIC][-O0][-G num][-V]
Targetkan opsi 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]
Targetkan opsi TIC54X:
[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf] [-merrors-to-file <filename>|-me <filename>]
Targetkan opsi TIC6X:
[-march=arch] [-mbig-endian|-mlittle-endian] [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far] [-mpic|-mno-pic]
Targetkan opsi TILE-Gx:
[-m32|-m64][-EB][-EL]
Opsi Visium Target:
[-mtune=arch]
Opsi Target 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]
Opsi Target Z80:
[-march=CPU[-EXT][+EXT]] [-local-prefix=PREFIX] [-colonless] [-sdcc] [-fp-s=FORMAT] [-fp-d=FORMAT]
GNU as sebenarnya adalah keluarga assembler. Jika Anda menggunakan (atau telah menggunakan) assembler GNU pada satu arsitektur, Anda harus menemukan lingkungan yang cukup mirip ketika Anda menggunakannya pada arsitektur lain. Setiap versi memiliki banyak kesamaan dengan yang lain, termasuk format file objek, sebagian besar arahan assembler (sering disebut pseudo-ops) dan sintaks assembler.
as terutama dimaksudkan untuk menyusun keluaran kompiler GNU C gcc untuk digunakan oleh penghubung ld. Meskipun demikian, kami mencoba membuat sebagai merakit dengan benar semua yang akan dirakit oleh perakit lain untuk mesin yang sama. Setiap pengecualian didokumentasikan secara eksplisit. Ini tidak berarti karena selalu menggunakan sintaks yang sama dengan assembler lain untuk arsitektur yang sama; misalnya, kami mengetahui beberapa versi sintaks bahasa rakitan 680x0 yang tidak kompatibel.
Setiap kali Anda menjalankan as, program ini merakit tepat satu program sumber. Program sumber terdiri dari satu atau lebih file. (Input standar juga berupa file.)
Anda memberikan sebagai baris perintah yang memiliki nol atau lebih nama file masukan. File input dibaca (dari nama file kiri ke kanan). Argumen baris perintah (dalam posisi apa pun) yang tidak memiliki arti khusus dianggap sebagai nama file masukan.
Jika Anda memberikan sebagai tidak ada nama file, ia mencoba membaca satu file masukan dari masukan standar sebagai, yang biasanya merupakan terminal Anda. Anda mungkin harus mengetikkan ctl-D untuk memberi tahu karena tidak ada lagi program untuk dirakit.
Gunakan -- jika Anda perlu memberi nama file input standar secara eksplisit di baris perintah Anda.
Jika sumbernya kosong, as menghasilkan file objek kecil yang kosong.
sebagaimana dapat menulis peringatan dan pesan kesalahan ke file kesalahan standar (biasanya terminal Anda). Ini seharusnya tidak terjadi ketika kompiler menjalankan as secara otomatis. Peringatan melaporkan asumsi yang dibuat agar as dapat terus menyusun program yang cacat; kesalahan melaporkan masalah besar yang menghentikan perakitan.
Jika Anda memanggil as melalui kompiler GNU C, Anda dapat menggunakan opsi -Wa untuk meneruskan argumen ke assembler. Argumen assembler harus dipisahkan satu sama lain (dan -Wa) dengan koma. Misalnya:
gcc -c -g -O -Wa,-alh,-L file.c
Ini meneruskan dua opsi ke assembler: -alh (memancarkan daftar ke output standar dengan sumber rakitan dan tingkat tinggi) dan -L (mempertahankan simbol lokal di tabel simbol ).
Biasanya Anda tidak perlu menggunakan mekanisme -Wa ini, karena banyak opsi baris perintah kompiler secara otomatis diteruskan ke assembler oleh kompiler. (Anda dapat memanggil driver kompiler GNU dengan opsi -v untuk melihat dengan tepat opsi apa yang diteruskannya ke setiap pass kompilasi, termasuk assembler.)
Baca opsi baris perintah dari file. Opsi baca disisipkan sebagai pengganti opsi @file asli. Jika file tidak ada, atau tidak dapat dibaca, maka opsi akan diperlakukan secara harfiah, dan tidak dihapus. Opsi di file dipisahkan oleh spasi putih. Karakter spasi dapat disertakan dalam opsi dengan mengapit seluruh opsi dalam tanda kutip tunggal atau ganda. Karakter apa pun (termasuk garis miring terbalik) dapat disertakan dengan mengawali karakter yang akan disertakan dengan garis miring terbalik. file mungkin berisi opsi @file tambahan; opsi semacam itu akan diproses secara rekursif.
Aktifkan cantuman, dengan berbagai cara:
menghilangkan kondisi palsu
hilangkan arahan debug
sertakan informasi umum, seperti versi dan opsi yang diteruskan
termasuk sumber tingkat tinggi
termasuk perakitan
termasuk ekspansi makro
menghilangkan pemrosesan formulir
menyertakan simbol
atur nama file daftar
Anda dapat menggabungkan opsi ini; misalnya, gunakan -aln untuk daftar rakitan tanpa pemrosesan formulir. Opsi =file, jika digunakan, harus yang terakhir. Dengan sendirinya, -a default ke -ahls.
Mulai dalam mode makro alternatif.
Kompres bagian debug DWARF menggunakan zlib dengan SHF_COMPRESSED dari ELF ABI. File objek yang dihasilkan mungkin tidak kompatibel dengan linker lama dan utilitas file objek. Perhatikan jika kompresi akan membuat bagian tertentu lebih besar maka itu tidak dikompresi.
Opsi ini mengontrol bagaimana bagian debug DWARF dikompresi. --compress-debug-sections=none setara dengan --nocompress-debug-sections. --compress-debug-sections=zlib dan --compress-debug-sections=zlib-gabi setara dengan --compress-debug-sections. --compress-debug-sections=zlib-gnu mengompresi bagian debug DWARF menggunakan format zlib-gnu usang. Bagian debug diganti namanya menjadi .zdebug. --compress-debug-sections=zstd mengompresi bagian debug DWARF menggunakan zstd. Catatan - jika kompresi benar-benar akan membuat suatu bagian lebih besar, maka bagian tersebut tidak dikompresi atau diubah namanya.
Jangan kompres bagian debug DWARF. Ini biasanya default untuk semua target kecuali x86/x86_64, tetapi opsi waktu konfigurasi dapat digunakan untuk menimpanya.
Aktifkan denugging di backend spesifik target, jika didukung. Jika tidak diabaikan. Meskipun diabaikan, opsi ini diterima untuk kompatibilitas skrip dengan panggilan ke assembler lain.
Saat menyusun file dalam direktori lama, catat informasi debug yang menjelaskannya sebagai baru sebagai gantinya.
Tentukan simbol sym menjadi nilai sebelum merakit file input. nilai harus berupa konstanta bilangan bulat. Seperti di C, awalan 0x menunjukkan nilai heksadesimal, dan awalan 0 menunjukkan nilai oktal. Nilai simbol dapat diganti di dalam file sumber melalui penggunaan pseudo-op .set.
Menampilkan bagaimana assembler dikonfigurasi dan kemudian keluar.
Opsi ini mengontrol apakah assembler ELF harus menghasilkan simbol umum dengan tipe STT_COMMON. Default dapat dikontrol dengan opsi konfigurasi --enable-elf-stt-common.
Jika assembler dikonfigurasi untuk mendukung beberapa konfigurasi target yang berbeda, maka opsi ini dapat digunakan untuk memilih bentuk yang diinginkan.
cepat --- lewati spasi kosong dan komentar preprocessing (asumsikan sumber adalah keluaran kompiler).
Hasilkan informasi debug untuk setiap baris sumber assembler menggunakan format debug mana pun yang disukai oleh target. Ini saat ini berarti STABS, ECOFF atau DWARF2. Ketika format debug adalah DWARF maka bagian .debug_info dan .debug_line hanya dikeluarkan ketika file rakitan tidak menghasilkannya sendiri.
Hasilkan informasi debugging tusukan untuk setiap baris assembler. Ini dapat membantu men-debug kode assembler, jika debugger dapat menanganinya.
Hasilkan informasi debugging tusukan untuk setiap baris assembler, dengan ekstensi GNU yang mungkin hanya dapat ditangani oleh gdb, dan itu dapat membuat debugger lain mogok atau menolak untuk membaca program Anda. Ini dapat membantu men-debug kode assembler. Saat ini satu-satunya ekstensi GNU adalah lokasi direktori kerja saat ini pada waktu perakitan.
Hasilkan informasi debug DWARF2 untuk setiap baris assembler. Ini dapat membantu men-debug kode assembler, jika debugger dapat menanganinya. Catatan --- opsi ini hanya didukung oleh beberapa target, tidak semuanya.
Opsi ini sama dengan opsi --gdwarf-2, kecuali opsi ini memungkinkan pembuatan informasi debug tambahan sesuai versi 3 spesifikasi DWARF. Catatan - mengaktifkan opsi ini tidak menjamin pembuatan informasi tambahan apa pun, pilihan untuk melakukannya berdasarkan per target.
Opsi ini sama dengan opsi --gdwarf-2, kecuali opsi ini memungkinkan pembuatan informasi debug tambahan sesuai versi 4 spesifikasi DWARF. Catatan - mengaktifkan opsi ini tidak menjamin pembuatan informasi tambahan apa pun, pilihan untuk melakukannya berdasarkan per target.
Opsi ini sama dengan opsi --gdwarf-2, kecuali opsi ini memungkinkan pembuatan informasi debug tambahan sesuai versi 5 spesifikasi DWARF. Catatan - mengaktifkan opsi ini tidak menjamin pembuatan informasi tambahan apa pun, pilihan untuk melakukannya berdasarkan per target.
Alih-alih membuat bagian .debug_line, buat rangkaian bagian .debug_line.foo dengan foo adalah nama bagian kode yang sesuai. Misalnya, bagian kode bernama .text.func akan menempatkan informasi nomor baris kerdilnya ke dalam bagian bernama .debug_line.text.func. Jika bagian kode hanya disebut .text maka bagian baris debug akan tetap disebut hanya .debug_line tanpa akhiran apa pun.
Mengontrol versi DWARF Common Information Entries (CIE) mana yang diproduksi. Ketika bendera ini tidak ditentukan, standarnya adalah versi 1, meskipun beberapa target dapat mengubah standar ini. Kemungkinan nilai lain untuk versi adalah 3 atau 4.
Opsi ini mengontrol apakah assembler ELF harus menghasilkan catatan atribut GNU Build jika tidak ada di sumber input. Default dapat dikontrol dengan opsi konfigurasi --enable-generate-build-notes.
Buat bagian .sframe dari arahan CFI.
Diabaikan. Didukung untuk kompatibilitas baris perintah dengan assembler lain.
Cetak ringkasan opsi baris perintah dan keluar.
Cetak ringkasan semua opsi spesifik target dan keluar.
Tambahkan direktori dir ke daftar pencarian untuk arahan .include.
Jangan peringatkan tentang luapan yang ditandatangani.
Keluarkan peringatan saat tabel perbedaan diubah untuk perpindahan yang lama.
Simpan (dalam tabel simbol) simbol lokal. Simbol ini dimulai dengan awalan label lokal khusus sistem, biasanya .L untuk sistem ELF atau L untuk sistem a.out tradisional.
Tetapkan lebar maksimum, dengan kata lain, kolom data keluaran untuk daftar assembler ke angka.
Tetapkan lebar maksimum, dengan kata lain, kolom data keluaran untuk baris lanjutan dalam daftar assembler ke angka.
Tetapkan lebar maksimum baris sumber input, seperti yang ditampilkan dalam daftar, ke angka byte.
Setel jumlah maksimum baris yang dicetak dalam daftar untuk satu baris input ke angka + 1.
Mengontrol cara assembler menangani karakter multibyte di input. Standarnya (yang dapat dipulihkan dengan menggunakan argumen izinkan) adalah mengizinkan karakter tersebut tanpa keluhan. Menggunakan argumen warn akan membuat assembler membuat pesan peringatan setiap kali ada karakter multibyte yang ditemukan. Menggunakan argumen warn-sym-only hanya akan menyebabkan munculnya peringatan ketika simbol ditentukan dengan nama yang berisi karakter multibita. (Referensi ke simbol yang tidak ditentukan tidak akan menghasilkan peringatan).
Hentikan assembler untuk melapisi ujung bagian keluaran ke penyelarasan bagian itu. Standarnya adalah mengisi bagian, tetapi ini dapat membuang ruang yang mungkin diperlukan pada target yang memiliki kendala memori yang ketat.
Beri nama output objek-file dari as objfile.
Lipat bagian data ke dalam bagian teks.
Diabaikan. Didukung untuk kompatibilitas dengan alat yang memberikan opsi yang sama untuk assembler dan linker.
Hormati urutan substitusi dalam nama bagian.
Keluarkan kesalahan atau peringatan untuk direktif ELF .size yang tidak valid.
Cetak ruang maksimum (dalam byte) dan total waktu (dalam detik) yang digunakan oleh perakitan.
Hapus simbol absolut lokal dari tabel simbol keluar.
Cetak versi sebagai.
Cetak versi sebagai dan keluar.
Menekan pesan peringatan.
Perlakukan peringatan sebagai kesalahan.
Jangan menekan pesan peringatan atau memperlakukannya sebagai kesalahan.
Diabaikan.
Diabaikan.
Hasilkan file objek bahkan setelah kesalahan.
Input standar, atau file sumber untuk dirakit.
Opsi berikut tersedia saat dikonfigurasi untuk mode 64-bit Arsitektur ARM (AArch64).
Opsi ini menetapkan bahwa output yang dihasilkan oleh assembler harus ditandai sebagai dikodekan untuk prosesor big-endian.
Opsi ini menetapkan bahwa output yang dihasilkan oleh assembler harus ditandai sebagai dikodekan untuk prosesor little-endian.
Tentukan ABI mana yang digunakan kode sumber. Argumen yang dikenali adalah: ilp32 dan lp64, yang menentukan file objek yang dihasilkan masing-masing dalam format ELF32 dan ELF64. Standarnya adalah lp64.
Opsi ini menentukan prosesor target. Assembler akan mengeluarkan pesan kesalahan jika dilakukan upaya untuk merakit instruksi yang tidak akan dieksekusi pada prosesor target. Nama prosesor berikut dikenali: 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, dan cortex-x2.
Nama khusus all dapat digunakan untuk memungkinkan assembler menerima instruksi yang valid untuk semua prosesor yang didukung, termasuk semua ekstensi opsional. Selain set instruksi dasar, assembler dapat diminta untuk menerima, atau membatasi, berbagai ekstensi mnemonik yang memperluas prosesor. Jika beberapa implementasi prosesor tertentu dapat memiliki ekstensi, maka ekstensi tersebut akan diaktifkan secara otomatis. Akibatnya, Anda biasanya tidak perlu menentukan ekstensi tambahan apa pun.
Opsi ini menentukan arsitektur target. Assembler akan mengeluarkan pesan kesalahan jika dilakukan upaya untuk merakit instruksi yang tidak akan dijalankan pada arsitektur target. Nama arsitektur berikut dikenali: 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, dan armv9.3-a. Jika -mcpu dan -march ditetapkan, assembler akan menggunakan setelan untuk -mcpu. Jika tidak ada yang ditentukan, assembler akan default ke -mcpu=all. Opsi arsitektur dapat diperluas dengan opsi ekstensi set instruksi yang sama dengan opsi -mcpu. Tidak seperti -mcpu, ekstensi tidak selalu diaktifkan secara default,
Opsi ini mengaktifkan pesan kesalahan verbose untuk gas AArch64. Opsi ini diaktifkan secara default.
Opsi ini menonaktifkan pesan kesalahan verbose di AArch64 gas.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor Alpha.
Opsi ini menentukan prosesor target. Jika upaya dilakukan untuk menyusun instruksi yang tidak akan dieksekusi pada prosesor target, assembler dapat memperluas instruksi sebagai makro atau mengeluarkan pesan kesalahan. Opsi ini setara dengan direktif .arch. Nama prosesor berikut dikenali: 21064, 21064a, 21066, 21068, 21164, 21164a, 21164pc, 21264, 21264a, 21264b, ev4, ev5, lca45, ev5, ev56, pca56 , ev6, ev67, ev68. Nama khusus all dapat digunakan untuk memungkinkan assembler menerima instruksi yang berlaku untuk semua prosesor Alpha. Untuk mendukung praktik yang ada di OSF/1 sehubungan dengan .arch, dan praktik yang ada dalam MILO (bootloader Linux ARC), nama prosesor bernomor (mis. 21064) aktifkan instruksi PALcode khusus prosesor, sedangkan nama elektro-vlasik (mis. ev4) tidak.
Mengaktifkan atau menonaktifkan pembuatan enkapsulasi .mdebug untuk perintah stab dan deskriptor prosedur. Defaultnya adalah mengaktifkan .mdebug secara otomatis saat direktif tusukan pertama terlihat.
Opsi ini memaksa semua relokasi untuk dimasukkan ke dalam file objek, alih-alih menghemat ruang dan menyelesaikan beberapa relokasi pada waktu perakitan. Perhatikan bahwa opsi ini tidak menyebarkan semua simbol aritmatika ke dalam file objek, karena tidak semua simbol aritmatika dapat direpresentasikan. Namun, opsi tersebut masih dapat berguna dalam aplikasi tertentu.
Mengaktifkan atau menonaktifkan pengoptimalan panggilan prosedur, baik saat perakitan maupun saat tautan. Opsi ini hanya tersedia untuk target VMS dan -replace adalah defaultnya. Lihat bagian 1.4.1 dari Manual Utilitas Linker OpenVMS.
Opsi ini digunakan saat kompiler menghasilkan informasi debug. Saat gcc menggunakan mips-tfile untuk menghasilkan informasi debug untuk ECOFF, label lokal harus diteruskan ke file objek. Kalau tidak, opsi ini tidak berpengaruh.
Simbol umum lokal yang lebih besar dari ukuran ditempatkan di .bss, sedangkan simbol yang lebih kecil ditempatkan di .sbss.
Opsi ini diabaikan untuk kompatibilitas mundur.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor ARC.
Opsi ini memilih varian prosesor inti.
Pilih keluaran big-endian (-EB) atau little-endian (-EL).
Aktifkan petunjuk ekstensi Kepadatan Kode.
Opsi berikut tersedia saat dikonfigurasi untuk keluarga prosesor ARM.
Tentukan varian prosesor ARM mana yang menjadi target.
Tentukan varian arsitektur ARM mana yang digunakan oleh target.
Pilih arsitektur Floating Point mana yang menjadi target.
Pilih ABI floating point mana yang digunakan.
Aktifkan decoding instruksi hanya jempol.
Pilih konvensi pemanggilan prosedur mana yang digunakan.
Pilih keluaran big-endian (-EB) atau little-endian (-EL).
Tentukan bahwa kode telah dibuat dengan mempertimbangkan interworking antara kode Thumb dan ARM.
Mengaktifkan mode kompatibilitas sintaks perakitan CodeComposer Studio.
Tentukan bahwa kode PIC telah dihasilkan.
Opsi berikut tersedia saat dikonfigurasikan untuk keluarga prosesor Blackfin.
Opsi ini menentukan prosesor target. sirevision opsional tidak digunakan di assembler. Di sinilah GCC dapat dengan mudah mewariskan opsi -mcpu= nya. Assembler akan mengeluarkan pesan kesalahan jika dilakukan upaya untuk merakit instruksi yang tidak akan dieksekusi pada prosesor target. Nama prosesor berikut dikenali: bf504, bf506, bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532, bf533, bf534 , bf535 (belum diimplementasikan), bf536, bf537, bf538, bf539 , bf542, bf542m, bf544, bf544m, bf547, bf547m , bf548, bf548m, bf549, bf549m, bf561, dan bf592.
Merakit untuk FDPIC ABI.
Nonaktifkan -mfdpic.
Opsi berikut tersedia saat dikonfigurasi untuk keluarga prosesor kernel Linux BPF.
@chapter Fitur Ketergantungan BPF
Opsi ini menentukan bahwa assembler harus mengeluarkan eBPF big-endian.
Opsi ini menentukan bahwa assembler harus mengeluarkan eBPF little-endian.
Perhatikan bahwa jika tidak ada opsi endianness yang ditentukan di baris perintah, endianness host akan digunakan. Lihat halaman info untuk dokumentasi opsi khusus CRIS.
Opsi berikut tersedia saat dikonfigurasi untuk keluarga prosesor C-SKY.
Merakit untuk arsitektur archname. Opsi --help mencantumkan nilai yang valid untuk archname.
Merakit untuk arsitektur cpuname. Opsi --help mencantumkan nilai yang valid untuk cpuname.
Hasilkan keluaran little-endian.
Hasilkan keluaran big-endian.
Menghasilkan kode posisi-independen.
Aktifkan/nonaktifkan transformasi instruksi cabang pendek jbf, jbt, dan jbr ke jmpi. Opsi ini hanya untuk prosesor V2. Ini diabaikan pada target CK801 dan CK802, yang tidak mendukung instruksi jmpi, dan diaktifkan secara default untuk prosesor lain.
Lewati relokasi R_CKCORE_PCREL_IMM26BY2 untuk petunjuk bsr ke linker. Opsi ini hanya tersedia untuk target C-SKY V2 ELF bare-metal, yang diaktifkan secara default. Itu tidak dapat digunakan dalam kode yang akan ditautkan secara dinamis dengan pustaka bersama.
Aktifkan/nonaktifkan transformasi instruksi jbsr ke bsr. Opsi ini selalu diaktifkan (dan -mno-force2bsr diabaikan) untuk target CK801/CK802. Ini juga selalu diaktifkan saat -mbranch-stub aktif.
Aktifkan/nonaktifkan transformasi instruksi jsri ke bsr. Opsi ini diaktifkan secara default.
Mengaktifkan/menonaktifkan transformasi instruksi lrw menjadi pasangan movih/ori.
Aktifkan/nonaktifkan petunjuk lrw yang diperluas. Opsi ini diaktifkan secara default untuk prosesor seri CK800.
Aktifkan/nonaktifkan penempatan kumpulan literal setelah setiap fungsi.
Aktifkan/nonaktifkan penempatan kumpulan literal setelah cabang tanpa syarat. Opsi ini diaktifkan secara default.
Mengaktifkan/menonaktifkan instruksi tumpukan interupsi. Opsi ini diaktifkan secara default pada prosesor CK801, CK802, dan CK802.
Opsi berikut secara eksplisit mengaktifkan instruksi opsional tertentu. Fitur ini juga diaktifkan secara implisit dengan menggunakan -mcpu= untuk menentukan prosesor yang mendukungnya.
Aktifkan instruksi hard float.
Aktifkan instruksi multiprosesor.
Aktifkan instruksi koprosesor.
Aktifkan instruksi prefetch cache.
Aktifkan petunjuk keamanan C-SKY.
Aktifkan instruksi kepercayaan C-SKY.
Aktifkan petunjuk DSP.
Aktifkan petunjuk DSP yang disempurnakan.
Aktifkan instruksi vektor DSP.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor Epiphany.
Menentukan bahwa instruksi 32 dan 16 bit diperbolehkan. Ini adalah perilaku default.
Batasi instruksi yang diizinkan hanya pada set 16 bit.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor H8/300. @chapter Fitur Ketergantungan H8/300
Versi as Renesas H8/300 memiliki satu opsi yang bergantung pada mesin:
Mendukung konstanta hex gaya H'00 selain gaya 0x00.
Mengatur varian mesin H8300. Nama mesin berikut dikenali: h8300h, h8300hn, h8300s, h8300sn, h8300sx dan h8300sxn.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor i386.
Pilih ukuran kata, baik 32 bit atau 64 bit. --32 menyiratkan arsitektur Intel i386, sedangkan --x32 dan --64 menyiratkan arsitektur AMD x86-64 dengan 32-bit atau 64- ukuran kata bit masing-masing. Opsi ini hanya tersedia dengan format file objek ELF, dan memerlukan dukungan BFD yang diperlukan telah disertakan (pada platform 32-bit Anda harus menambahkan --enable-64-bit-bfd untuk mengonfigurasi mengaktifkan penggunaan 64-bit dan gunakan x86-64 sebagai platform target).
Secara default, x86 GAS menggantikan banyak instruksi nop yang digunakan untuk penyelarasan dalam bagian kode dengan instruksi nop multi-byte seperti leal 0(%esi,1),%esi. Sakelar ini menonaktifkan pengoptimalan jika satu byte nop (0x90) secara eksplisit ditetapkan sebagai byte isian untuk penyelarasan.
Pada platform turunan SVR4, karakter / diperlakukan sebagai karakter komentar, yang artinya tidak dapat digunakan dalam ekspresi. Opsi --divide mengubah / menjadi karakter normal. Ini tidak menonaktifkan / di awal baris yang memulai komentar, atau memengaruhi penggunaan # untuk memulai komentar.
Opsi ini menentukan prosesor target. Assembler akan mengeluarkan pesan kesalahan jika dilakukan upaya untuk merakit instruksi yang tidak akan dieksekusi pada prosesor target. Nama prosesor berikut dikenali: 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 dan generic64. Selain set instruksi dasar, assembler dapat diberitahu untuk menerima berbagai ekstensi mnemonik. Misalnya, -march=i686+sse4+vmx memperluas i686 dengan sse4 dan vmx.
Ekstensi berikut saat ini didukung: 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, < kode>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, < kode>fsgsbase, rdrnd, f16c, bmi2, fma, movbe, ept, lzcnt, popcnt, hle, rtm, 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 dan gembok.
Perhatikan bahwa mnemonik ekstensi ini dapat diawali dengan no untuk mencabut fungsionalitas masing-masing (dan yang bergantung). Ketika direktif .arch digunakan dengan -march, direktif .arch akan diutamakan.
Opsi ini menentukan prosesor yang akan dioptimalkan. Saat digunakan bersamaan dengan opsi -march, hanya instruksi prosesor yang ditentukan oleh opsi -march yang akan dibuat. Nilai CPU yang valid identik dengan daftar prosesor -march=CPU.
Opsi ini menentukan bahwa assembler harus menyandikan instruksi SSE dengan awalan VEX.
Opsi ini menentukan bahwa assembler harus menyandikan perpindahan vektor yang selaras sebagai perpindahan vektor yang tidak selaras.
Opsi ini mengontrol apakah assembler harus memeriksa instruksi SSE. -msse-check=none akan membuat assembler tidak memeriksa instruksi SSE, yang merupakan default. -msse-check=warning akan membuat assembler mengeluarkan peringatan untuk setiap instruksi SSE. -msse-check=error akan membuat assembler mengeluarkan error untuk setiap instruksi SSE.
Opsi ini mengontrol bagaimana assembler harus menyandikan instruksi AVX skalar. -mavxscalar=128 akan menyandikan instruksi AVX skalar dengan panjang vektor 128bit, yang merupakan default. -mavxscalar=256 akan menyandikan instruksi AVX skalar dengan panjang vektor 256bit. PERINGATAN: Jangan gunakan ini untuk kode produksi - karena kesalahan CPU, kode yang dihasilkan mungkin tidak berfungsi pada model tertentu.
Opsi ini mengontrol bagaimana assembler harus menyandikan VEX.W-ignored (WIG) instruksi VEX. -mvexwig=0 akan menyandikan instruksi WIG VEX dengan vex.w=0, yang merupakan default. -mvexwig=1 akan menyandikan instruksi WIG EVEX dengan vex.w=1. PERINGATAN: Jangan gunakan ini untuk kode produksi - karena kesalahan CPU, kode yang dihasilkan mungkin tidak mengerjakan model tertentu.
Opsi ini mengontrol bagaimana assembler harus menyandikan instruksi EVEX yang diabaikan panjang (LIG). -mevexlig=128 akan menyandikan instruksi LIG EVEX dengan panjang vektor 128bit, yang merupakan default. -mevexlig=256 dan -mevexlig=512 akan menyandikan instruksi LIG EVEX dengan panjang vektor 256bit dan 512bit, masing-masing .
Opsi ini mengontrol bagaimana assembler harus menyandikan instruksi EVEX w-ignored (WIG). -mevexwig=0 akan menyandikan instruksi WIG EVEX dengan evex.w=0, yang merupakan default. -mevexwig=1 akan menyandikan instruksi WIG EVEX dengan evex.w=1.
Opsi ini menentukan mnemonik instruksi untuk mencocokkan instruksi. Arahan .att_mnemonic dan .intel_mnemonic akan diutamakan.
Opsi ini menentukan sintaks instruksi saat memproses instruksi. Arahan .att_syntax dan .intel_syntax akan diutamakan.
Opsi ini menetapkan bahwa register tidak memerlukan awalan %. Arahan .att_syntax dan .intel_syntax akan diutamakan.
Opsi ini memaksa assembler untuk menambahkan awalan BND ke semua cabang, bahkan jika awalan tersebut tidak ditentukan secara eksplisit dalam kode sumber.
Pada target ELF, assembler biasanya mengoptimalkan relokasi non-PLT terhadap target cabang global non-lemah yang ditentukan dengan visibilitas default. Opsi -mshared memberi tahu assembler untuk menghasilkan kode yang mungkin masuk ke pustaka bersama tempat semua target cabang global non-lemah dengan visibilitas default dapat didahului. Kode yang dihasilkan sedikit lebih besar. Opsi ini hanya memengaruhi penanganan instruksi cabang.
Pada target PE/COFF opsi ini memaksa penggunaan format file objek besar, yang memungkinkan lebih dari 32768 bagian.
Opsi ini mengontrol bagaimana assembler harus menyandikan awalan kunci. Opsi ini dimaksudkan sebagai solusi untuk prosesor yang gagal pada prefiks kunci. Opsi ini hanya dapat digunakan secara aman dengan komputer single-core, single-thread -momit-lock-prefix=yes akan menghapus semua awalan kunci. -momit-lock-prefix=tidak akan menyandikan kunci awalan seperti biasa, yang merupakan default.
Opsi ini mengontrol bagaimana assembler harus menyandikan lfence, mfence, dan sfence. -mfence-as-lock-add=yes akan menyandikan lfence, mfence, dan sfence sebagai lock addl $0x0, (%rsp ) dalam mode 64-bit dan lock addl $0x0, (%esp) dalam mode 32-bit. -mfence-as-lock-add=no akan menyandikan lfence, mfence dan sfence seperti biasa, yang merupakan default.
Opsi ini mengontrol apakah assembler harus menghasilkan relokasi santai, R_386_GOT32X, dalam mode 32-bit, atau R_X86_64_GOTPCRELX dan R_X86_64_REX_GOTPCRELX, dalam mode 64-bit. -mrelax-relocations=yes akan menghasilkan relokasi santai. -mrelax-relocations=tidak tidak akan menghasilkan relokasi santai. Default dapat dikontrol dengan opsi konfigurasi --enable-x86-relax-relocations.
Opsi ini mengontrol bagaimana assembler harus menyelaraskan cabang dengan awalan segmen atau NOP. NUM harus pangkat 2. Harus 0 atau tidak kurang dari 16. Cabang akan disejajarkan dalam batas NUM byte. -malign-branch-boundary=0, yang merupakan default, tidak menyelaraskan cabang.
Opsi ini menentukan jenis cabang untuk disejajarkan. TYPE adalah kombinasi dari jcc, yang menyelaraskan lompatan bersyarat, menyatu, yang menyelaraskan lompatan bersyarat yang menyatu, jmp, yang menyelaraskan lompatan tanpa syarat, panggilan yang menyelaraskan panggilan, ret, yang menyelaraskan rets, tidak langsung, yang menyelaraskan lompatan dan panggilan tidak langsung. Standarnya adalah -malign-branch=jcc+fused+jmp.
Opsi ini menentukan jumlah awalan maksimum pada instruksi untuk menyelaraskan cabang. NUM harus antara 0 dan 5. NUM default adalah 5.
Opsi ini menyelaraskan lompatan bersyarat, lompatan bersyarat gabungan, dan lompatan tak bersyarat dalam batas 32 byte dengan hingga 5 awalan segmen pada instruksi. Ini setara dengan -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5. Standarnya tidak menyelaraskan cabang.
Opsi ini mengontrol apakah assembler harus menghasilkan lfence setelah instruksi pemuatan. -mlfence-after-load=yes akan menghasilkan lfence. -mlfence-after-load=no tidak akan menghasilkan lfence, yang merupakan default.
Opsi ini mengontrol apakah assembler harus menghasilkan lfence sebelum instruksi cabang dekat tidak langsung. -mlfence-before-indirect-branch=all akan menghasilkan lfence sebelum cabang dekat tidak langsung melalui register dan mengeluarkan peringatan sebelum cabang dekat tidak langsung melalui memori. Ini juga secara implisit menyetel -mlfence-before-ret=shl jika tidak ada -mlfence-before-ret= yang eksplisit. -mlfence-before-indirect-branch=register akan menghasilkan lfence sebelum cabang tidak langsung dekat melalui register. -mlfence-before-indirect-branch=memori akan mengeluarkan peringatan sebelum cabang dekat tidak langsung melalui memori. -mlfence-before-indirect-branch=none tidak akan menghasilkan lfence atau mengeluarkan peringatan, yang merupakan default. Perhatikan bahwa lfence tidak akan dihasilkan sebelum cabang dekat tidak langsung melalui register dengan -mlfence-after-load=yes karena lfence akan dihasilkan setelah memuat register target cabang.
Opsi ini mengontrol apakah assembler harus menghasilkan lfence sebelum ret. -mlfence-before-ret=or akan menghasilkan generate atau instruksi dengan lfence. -mlfence-before-ret=shl/yes akan menghasilkan instruksi shl dengan lfence. -mlfence-before-ret=not tidak akan menghasilkan instruksi dengan lfence. -mlfence-before-ret=none tidak akan menghasilkan lfence, yang merupakan default.
Opsi ini mengontrol apakah assembler harus menghasilkan GNU_PROPERTY_X86_ISA_1_USED dan catatan properti GNU_PROPERTY_X86_FEATURE_2_USED GNU. Default dapat dikontrol oleh opsi konfigurasi --enable-x86-used-note.
Opsi ini mengontrol bagaimana assembler harus menyandikan instruksi EVEX khusus SAE. -mevexrcig=rne akan menyandikan bit RC instruksi EVEX dengan 00, yang merupakan default. -mevexrcig=rd, -mevexrcig=ru dan -mevexrcig=rz akan menyandikan instruksi EVEX SAE saja dengan 01, 10 dan 11 bit RC, masing-masing.
Opsi ini menetapkan bahwa assembler harus menerima hanya AMD64 atau Intel64 ISA dalam mode 64-bit. Standarnya adalah menerima umum, hanya Intel64 dan ISA AMD64.
Optimalkan pengkodean instruksi dengan ukuran instruksi yang lebih kecil. -O dan -O1 menyandikan instruksi pemuatan register 64-bit dengan instan 64-bit sebagai instruksi pemuatan register 32-bit dengan instan 31-bit atau 32-bit, menyandikan 64 -bit instruksi kliring register dengan instruksi kliring register 32-bit, enkode instruksi kliring register vektor VEX/EVEX 256-bit/512-bit dengan instruksi kliring register vektor VEX 128-bit, enkode beban register vektor EVEX 128-bit/256-bit /instruksi toko dengan VEX vektor mendaftar memuat/instruksi penyimpanan, dan menyandikan 128-bit/256-bit EVEX instruksi logika bilangan bulat yang dikemas dengan logika bilangan bulat VEX 128-bit/256-bit. -O2 menyertakan pengoptimalan -O1 plus menyandikan instruksi pembersihan register vektor EVEX 256-bit/512-bit dengan instruksi pembersihan register vektor EVEX 128-bit. Dalam mode 64-bit instruksi yang disandikan VEX dengan operan sumber komutatif juga akan menukar operan sumbernya jika ini memungkinkan penggunaan bentuk awalan VEX 2-byte alih-alih yang 3-byte. Bentuk tertentu AND serta OR dengan operan (register) yang sama yang ditentukan dua kali juga akan diubah menjadi TEST. -Os mencakup pengoptimalan -O2 plus mengkodekan pengujian register 16-bit, 32-bit, dan 64-bit dengan segera seperti pengujian register 8-bit dengan segera. -O0 mematikan pengoptimalan ini.
Opsi berikut tersedia saat dikonfigurasi untuk seri Ubicom IP2K.
Menentukan bahwa instruksi IP2022 yang diperluas diizinkan.
Mengembalikan perilaku default, yang membatasi instruksi yang diizinkan hanya untuk instruksi dasar IP2022.
Opsi berikut ini tersedia saat dikonfigurasi untuk prosesor Renesas M32C dan M16C.
Merakit instruksi M32C.
Merakit instruksi M16C (default).
Aktifkan dukungan untuk relaksasi waktu tautan.
Mendukung konstanta hex gaya H'00 selain gaya 0x00.
Opsi berikut tersedia saat dikonfigurasi untuk seri Renesas M32R (sebelumnya Mitsubishi M32R).
Tentukan prosesor mana dalam keluarga M32R yang menjadi target. Standarnya biasanya M32R, tetapi opsi ini mengubahnya menjadi M32RX.
Menghasilkan pesan peringatan ketika konstruksi paralel yang dipertanyakan ditemukan.
Jangan menghasilkan pesan peringatan ketika konstruk paralel yang dipertanyakan ditemukan.
Opsi berikut ini tersedia jika dikonfigurasi untuk Motorola seri 68000.
Persingkat referensi ke simbol yang tidak ditentukan, menjadi satu kata, bukan dua.
Tentukan prosesor apa dalam keluarga 68000 yang menjadi target. Standarnya biasanya adalah 68020, tetapi ini dapat diubah pada waktu konfigurasi.
Mesin target memiliki (atau tidak) memiliki koprosesor floating-point. Standarnya adalah mengasumsikan koprosesor untuk 68020, 68030, dan cpu32. Meskipun basic 68000 tidak kompatibel dengan 68881, kombinasi keduanya dapat ditentukan, karena memungkinkan untuk melakukan emulasi instruksi koprosesor dengan prosesor utama.
Mesin target memiliki (atau tidak) memiliki koprosesor unit manajemen memori. Standarnya adalah menganggap MMU untuk 68020 dan lebih tinggi.
Opsi berikut ini tersedia saat dikonfigurasi untuk prosesor Altera Nios II.
Ganti cabang di luar jangkauan yang teridentifikasi dengan rangkaian jmp relatif-PC jika memungkinkan. Urutan kode yang dihasilkan cocok untuk digunakan dalam kode yang tidak bergantung pada posisi, tetapi ada batasan praktis pada rentang cabang yang diperluas karena panjangnya urutan. Opsi ini adalah default.
Ganti instruksi cabang yang tidak dapat ditentukan berada dalam jangkauan dan semua instruksi panggilan dengan urutan jmp dan callr (masing-masing). Opsi ini menghasilkan relokasi absolut terhadap simbol target dan tidak sesuai untuk kode yang tidak tergantung posisi.
Jangan mengganti cabang atau panggilan apa pun.
Hasilkan keluaran big-endian.
Hasilkan keluaran little-endian. Ini defaultnya.
Opsi ini menentukan arsitektur target. Assembler mengeluarkan pesan kesalahan jika dilakukan upaya untuk merakit instruksi yang tidak akan dijalankan pada arsitektur target. Nama arsitektur berikut dikenali: r1, r2. Standarnya adalah r1.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor PRU.
Asumsikan bahwa LD akan mengoptimalkan instruksi LDI32 dengan memeriksa 16 bit teratas dari ekspresi. Jika semuanya nol, maka LD akan mempersingkat instruksi LDI32 menjadi satu LDI. Dalam kasus seperti itu as akan menampilkan relokasi DIFF untuk ekspresi diff.
Asumsikan bahwa LD tidak akan mengoptimalkan instruksi LDI32. Akibatnya, relokasi DIFF tidak akan dipancarkan.
Jangan peringatkan jika nama label cocok dengan nama register. Biasanya pemrogram assembler ingin agar peringatan ini dipancarkan. Kompiler C mungkin ingin mematikan ini.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor MIPS.
Opsi ini menetapkan ukuran terbesar dari objek yang dapat dirujuk secara implisit dengan register gp. Itu hanya diterima untuk target yang menggunakan format ECOFF, seperti DECstation yang menjalankan Ultrix. Nilai standarnya adalah 8.
Hasilkan keluaran format big endian.
Hasilkan output format endian kecil.
Hasilkan kode untuk tingkat Arsitektur Set Instruksi MIPS tertentu. -mips1 adalah alias untuk -march=r3000, -mips2 adalah alias untuk -march=r6000, -mips3 adalah alias untuk -march=r4000 dan -mips4 adalah alias untuk -march=r8000. -mips5, -mips32, -mips32r2, -mips32r3, -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5, dan -mips64r6 sesuai dengan MIPS V generik, MIPS32, MIPS32 Rilis 2, MIPS32 Rilis 3, MIPS32 Rilis 5, MIPS32 Rilis 6, MIPS64, MIPS64 Rilis 2, MIPS64 Rilis 3, MIPS64 Rilis 5, dan MIPS64 Rilis masing-masing 6 prosesor ISA.
Hasilkan kode untuk CPU MIPS tertentu.
Jadwalkan dan setel untuk CPU MIPS tertentu.
Menyebabkan nops dimasukkan jika pembacaan register tujuan dari instruksi mfhi atau mflo terjadi dalam dua instruksi berikut.
Menyebabkan nops dimasukkan jika instruksi dmult atau dmultu diikuti oleh instruksi beban.
Jangan mencoba untuk menjadwalkan instruksi sebelumnya ke dalam slot delay dari instruksi cabang yang ditempatkan pada akhir loop pendek yang terdiri dari enam instruksi atau kurang dan selalu jadwalkan instruksi nop di sana. Bug loop pendek dalam kondisi tertentu menyebabkan loop hanya dieksekusi sekali atau dua kali, karena bug perangkat keras pada chip R5900.
Menyebabkan hasil debug gaya stabs untuk masuk ke bagian .mdebug gaya ECOFF alih-alih bagian ELF .stabs standar.
Mengontrol pembuatan bagian .pdr.
Ukuran register biasanya disimpulkan dari ISA dan ABI, tetapi flag ini memaksa sekelompok register tertentu untuk diperlakukan selebar 32 bit setiap saat. -mgp32 mengontrol ukuran register tujuan umum dan -mfp32 mengontrol ukuran register floating-point.
Ukuran register biasanya disimpulkan dari ISA dan ABI, tetapi flag ini memaksa sekelompok register tertentu diperlakukan sebagai lebar 64 bit setiap saat. -mgp64 mengontrol ukuran register tujuan umum dan -mfp64 mengontrol ukuran register floating-point.
Ukuran register biasanya disimpulkan dari ISA dan ABI, tetapi menggunakan tanda ini dalam kombinasi dengan -mabi=32 mengaktifkan varian ABI yang akan beroperasi dengan benar dengan register floating-point yang lebarnya 32 atau 64 bit .
Mengaktifkan penggunaan operasi floating-point pada register presisi tunggal bernomor ganjil bila didukung oleh ISA. -mfpxx menyiratkan -mno-odd-spreg, jika tidak, standarnya adalah -modd-spreg.
Hasilkan kode untuk prosesor MIPS 16. Ini sama dengan meletakkan .module mips16 di awal file rakitan. -no-mips16 mematikan opsi ini.
Aktifkan penggunaan instruksi MIPS16e2 dalam mode MIPS16. Ini sama dengan meletakkan .module mips16e2 di awal file rakitan. -mno-mips16e2 mematikan opsi ini.
Hasilkan kode untuk prosesor microMIPS. Ini sama dengan meletakkan .module micromips di awal file rakitan. -mno-micromips menonaktifkan opsi ini. Ini sama dengan meletakkan .module nomicromips di awal file rakitan.
Mengaktifkan ekstensi SmartMIPS ke set instruksi MIPS32. Ini sama dengan meletakkan .module smartmips di awal file rakitan. -mno-smartmips mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi MIPS-3D. Ini memberitahu assembler untuk menerima instruksi MIPS-3D. -no-mips3d mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi MDMX. Ini memberitahu assembler untuk menerima instruksi MDMX. -no-mdmx mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi DSP Rilis 1. Ini memberitahu assembler untuk menerima instruksi DSP Rilis 1. -mno-dsp menonaktifkan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi Rilis 2 DSP. Opsi ini menyiratkan -mdsp. Ini memberitahu assembler untuk menerima instruksi DSP Rilis 2. -mno-dspr2 mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi DSP Rilis 3. Opsi ini menyiratkan -mdsp dan -mdspr2. Ini memberitahu assembler untuk menerima instruksi DSP Release 3. -mno-dspr3 mematikan opsi ini.
Hasilkan kode untuk MIPS SIMD Architecture Extension. Ini memberitahu assembler untuk menerima instruksi MSA. -mno-msa mematikan opsi ini.
Hasilkan kode untuk Ekstensi MIPS eXtended Physical Address (XPA). Ini memberitahu assembler untuk menerima instruksi XPA. -mno-xpa mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi MT. Ini memberitahu assembler untuk menerima instruksi MT. -mno-mt mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi MCU. Ini memberitahu assembler untuk menerima instruksi MCU. -mno-mcu mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi MIPS cyclic redundancy check (CRC). Ini memberitahu assembler untuk menerima instruksi CRC. -mno-crc mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi Global INValidate (GINV). Ini memberitahu assembler untuk menerima instruksi GINV. -mno-ginv mematikan opsi ini.
Hasilkan kode untuk Ekstensi Khusus Aplikasi Loongson MultiMedia Extensions Instructions (MMI). Ini memberitahu assembler untuk menerima instruksi MMI. -mno-loongson-mmi mematikan opsi ini.
Buat kode untuk instruksi Loongson Content Address Memory (CAM). Ini memberitahu assembler untuk menerima instruksi Loongson CAM. -mno-loongson-cam menonaktifkan opsi ini.
Hasilkan kode untuk instruksi Loongson EXtensions (EXT). Ini memberitahu assembler untuk menerima instruksi Loongson EXT. -mno-loongson-ext menonaktifkan opsi ini.
Hasilkan kode untuk instruksi Loongson EXtensions R2 (EXT2). Opsi ini menyiratkan -mloongson-ext. Ini memberitahu assembler untuk menerima instruksi Loongson EXT2. -mno-loongson-ext2 menonaktifkan opsi ini.
Hanya gunakan pengkodean instruksi 32-bit saat membuat kode untuk prosesor microMIPS. Opsi ini menghambat penggunaan instruksi 16-bit apa pun. Ini sama dengan meletakkan .set insn32 di awal file rakitan. -mno-insn32 mematikan opsi ini. Ini sama dengan meletakkan .set noinsn32 di awal file rakitan. Secara default -mno-insn32 dipilih, mengizinkan semua instruksi untuk digunakan.
Opsi --no-construct-floats menonaktifkan konstruksi konstanta floating point lebar ganda dengan memuat dua bagian nilai ke dalam dua register floating point lebar tunggal yang membentuk register lebar ganda. Secara default --construct-floats dipilih, memungkinkan konstruksi konstanta floating point ini.
Opsi --relax-branch memungkinkan relaksasi cabang di luar jangkauan. Secara default --no-relax-branch dipilih, menyebabkan setiap cabang di luar jangkauan menghasilkan kesalahan.
Abaikan pemeriksaan cabang untuk transisi yang tidak valid antara mode ISA. Semantik cabang tidak menyediakan sakelar mode ISA, jadi dalam banyak kasus mode ISA cabang yang telah dikodekan harus sama dengan mode ISA dari label target cabang. Oleh karena itu, GAS telah menerapkan pemeriksaan yang memverifikasi di rakitan cabang bahwa kedua mode ISA cocok. -mignore-branch-isa menonaktifkan pemeriksaan ini. Secara default -mno-ignore-branch-isa dipilih, menyebabkan setiap cabang yang tidak valid memerlukan transisi antara mode ISA untuk menghasilkan kesalahan.
Pilih antara IEEE 754-2008 (-mnan=2008) atau format enkode NaN lama (-mnan=legacy). Yang terakhir adalah default.
Opsi ini sebelumnya digunakan untuk beralih antara output ELF dan ECOFF pada target seperti IRIX 5 yang mendukung keduanya. Dukungan MIPS ECOFF telah dihapus di GAS 2.24, jadi opsi tersebut sekarang tidak banyak berguna. Itu dipertahankan untuk kompatibilitas mundur. Nama konfigurasi yang tersedia adalah: mipself, mipslelf dan mipsbelf. Memilih mipself sekarang tidak berpengaruh, karena hasilnya selalu ELF. mipslelf dan mipsbelf masing-masing memilih keluaran little- dan big-endian, tetapi -EL dan -EB sekarang adalah pilihan yang lebih disukai sebagai gantinya.
sebagai mengabaikan opsi ini. Itu diterima untuk kompatibilitas dengan alat asli.
Kontrol cara menangani perkalian melimpah dan pembagian dengan nol. --trap atau --no-break (yang merupakan sinonim) menerima pengecualian jebakan (dan hanya berfungsi untuk Arsitektur Set Instruksi level 2 dan lebih tinggi); --break atau --no-trap (juga sinonim, dan default) mengambil pengecualian istirahat.
Saat opsi ini digunakan, as akan mengeluarkan peringatan setiap kali menghasilkan instruksi nop dari makro.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor LoongArch.
Menghasilkan kode posisi-independen
Jangan membuat kode yang tidak bergantung pada posisi (default)
Opsi berikut tersedia saat dikonfigurasi untuk prosesor Meta.
Hasilkan kode untuk Meta 1.1.
Hasilkan kode untuk Meta 1.2.
Hasilkan kode untuk Meta 2.1.
Izinkan kode untuk menggunakan perangkat keras FPU dari Meta 2.1.
Lihat halaman info untuk dokumentasi opsi khusus MMIX.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor NDS32.
Mengoptimalkan kinerja.
Mengoptimalkan ruang.
Menghasilkan keluaran data endian kecil.
Menghasilkan keluaran data endian kecil.
Hasilkan PIC.
Tekan relaksasi fp-as-gp untuk file ini.
Optimasi cabang back-to-back.
Tekan semua relaksasi untuk file ini.
Rakit untuk arsitektur
Rakit untuk baseline
Tentukan konfigurasi FPU.
Tentukan versi abi
Aktifkan/Nonaktifkan dukungan instruksi Multiply.
Aktifkan/Nonaktifkan dukungan instruksi Divide.
Aktifkan/Nonaktifkan ekstensi 16-bit
Aktifkan/Nonaktifkan register d0/d1
Aktifkan/Nonaktifkan ekstensi Performa
Aktifkan/Nonaktifkan Ekstensi kinerja 2
Aktifkan/Nonaktifkan ekstensi String
Aktifkan/Nonaktifkan opsi Reduced Register configuration (GPR16).
Aktifkan/Nonaktifkan ekstensi AUDIO ISA
Aktifkan/Nonaktifkan ekstensi FPU SP
Aktifkan/Nonaktifkan ekstensi FPU DP
Aktifkan/Nonaktifkan FPU fusi-multiply-add instruksi
Aktifkan semua ekstensi dan dukungan instruksi
Opsi berikut tersedia saat dikonfigurasi untuk prosesor PowerPC.
Hasilkan ELF32 atau XCOFF32.
Hasilkan ELF64 atau XCOFF64.
Tetapkan EF_PPC_RELOCATABLE_LIB di bendera ELF.
Hasilkan kode untuk POWER/2 (RIOS2).
Hasilkan kode untuk POWER (RIOS1)
Hasilkan kode untuk PowerPC 601.
Hasilkan kode untuk PowerPC 603/604.
Hasilkan kode untuk PowerPC 403/405.
Hasilkan kode untuk PowerPC 440. BookE dan beberapa instruksi 405.
Hasilkan kode untuk PowerPC 464.
Hasilkan kode untuk PowerPC 476.
Hasilkan kode untuk PowerPC 7400/7410/7450/7455.
Hasilkan kode untuk PowerPC 750CL/Gekko/Broadway.
Hasilkan kode untuk PowerPC 821/850/860.
Hasilkan kode untuk PowerPC 620/625/630.
Hasilkan kode untuk varian e200, e200z2 dengan LSP, e200z4 dengan SPE.
Hasilkan kode untuk keluarga PowerPC e300.
Hasilkan kode untuk kompleks inti Motorola e500.
Hasilkan kode untuk kompleks inti Freescale e500mc.
Hasilkan kode untuk kompleks inti Freescale e500mc64.
Hasilkan kode untuk kompleks inti Freescale e5500.
Hasilkan kode untuk kompleks inti Freescale e6500.
Aktifkan instruksi LSP. (Menonaktifkan SPE dan SPE2.)
Hasilkan kode untuk instruksi Motorola SPE. (Menonaktifkan LSP.)
Hasilkan kode untuk instruksi Freescale SPE2. (Menonaktifkan LSP.)
Hasilkan kode untuk kompleks inti AppliedMicro Titan.
Menghasilkan kode untuk PowerPC 64, termasuk penginapan jembatan.
Hasilkan kode untuk BookE 32-bit.
Hasilkan kode untuk arsitektur A2.
Hasilkan kode untuk prosesor dengan instruksi AltiVec.
Hasilkan kode untuk instruksi Freescale PowerPC VLE.
Hasilkan kode untuk prosesor dengan instruksi Vector-Scalar (VSX).
Hasilkan kode untuk prosesor dengan instruksi Memori Transaksional Perangkat Keras.
Hasilkan kode untuk arsitektur Power4.
Hasilkan kode untuk arsitektur Power5.
Hasilkan kode untuk arsitektur Power6.
Hasilkan kode untuk arsitektur Power7.
Hasilkan kode untuk arsitektur Power8.
Hasilkan kode untuk arsitektur Power9.
Hasilkan kode untuk arsitektur Power10.
Hasilkan kode untuk arsitektur 'masa depan'.
Hasilkan kode untuk arsitektur Cell Broadband Engine.
Hasilkan instruksi umum kode Power/PowerPC.
Hasilkan kode untuk arsitektur apa pun (PWR/PWRX/PPC).
Izinkan nama simbolik untuk register.
Jangan izinkan nama simbolik untuk register.
Dukungan untuk opsi -mrelocatable GCC.
Dukungan untuk opsi -mrelocatable-lib GCC.
Tetapkan bit PPC_EMB dalam bendera ELF.
Hasilkan kode untuk mesin endian kecil.
Hasilkan kode untuk mesin big endian.
Hasilkan kode untuk Solaris.
Jangan membuat kode untuk Solaris.
Jika direktif perataan menyisipkan lebih dari count nops, letakkan cabang di awal untuk melewati eksekusi nops.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor RISC-V.
Menghasilkan kode posisi-independen
Jangan membuat kode yang tidak bergantung pada posisi (default)
Pilih isa dasar, seperti yang ditentukan oleh ISA. Misalnya -march=rv32ima. Jika opsi ini dan atribut arsitektur tidak disetel, maka assembler akan memeriksa setelan konfigurasi default --with-arch=ISA.
Pilih versi spesifikasi isa default. Jika versi ISA tidak disetel pada -march, maka assembler membantu menyetel versi sesuai dengan spesifikasi yang dipilih secara default. Jika opsi ini tidak disetel, maka assembler akan memeriksa setelan konfigurasi default --with-isa-spec=ISAspec.
Pilih versi spesifikasi istimewa. Kita bisa memutuskan apakah CSR tersebut valid atau tidak sesuai dengan spec yang dipilih. Jika opsi ini dan atribut hak istimewa tidak disetel, maka assembler akan memeriksa setelan konfigurasi default --with-priv-spec=PRIVspec.
Memilih ABI, yaitu ilp32 atau lp64, secara opsional diikuti oleh f, d, atau q untuk menunjukkan konvensi pemanggilan floating-point presisi tunggal, presisi ganda, atau quad-precision, atau tidak sama sekali untuk menunjukkan konvensi pemanggilan soft-float . Selain itu, ilp32 secara opsional dapat diikuti oleh e untuk menunjukkan RVE ABI, yang selalu soft-float.
Manfaatkan relaksasi tautan untuk mengurangi jumlah instruksi yang diperlukan untuk mewujudkan alamat simbol. (bawaan)
Jangan melakukan relaksasi linker.
Hasilkan konten default untuk bagian atribut riscv elf jika arahan .attribute tidak disetel. Bagian ini digunakan untuk mencatat informasi yang dibutuhkan linker atau runtime loader untuk memeriksa kompatibilitas. Informasi ini mencakup string ISA, persyaratan penyelarasan tumpukan, akses memori yang tidak selaras, dan versi spesifikasi istimewa mayor, minor, dan revisi.
Jangan membuat bagian atribut riscv elf default jika .attribute directive tidak disetel.
Aktifkan pemeriksaan CSR untuk CRS yang bergantung pada ISA dan CSR hanya baca. CSR yang bergantung pada ISA hanya valid ketika ISA spesifik ditetapkan. CSR read-only tidak dapat ditulis oleh instruksi CSR.
Jangan lakukan pengecekan CSR.
Hasilkan kode untuk mesin endian kecil.
Hasilkan kode untuk mesin big endian.
Lihat halaman info untuk dokumentasi opsi khusus RX.
Opsi berikut tersedia saat dikonfigurasi untuk rangkaian prosesor s390.
Pilih ukuran kata, baik 31/32 bit atau 64 bit.
Pilih mode arsitektur, baik Arsitektur Sistem Perusahaan (esa) atau mode z/Arsitektur (zarch).
Tentukan varian prosesor s390 mana yang menjadi target, g5 (atau arch3), g6, z900 (atau arch5), z990 (atau arch6), z9-109, z9-ec ( atau arch7), z10 (atau arch8), z196 (atau arch9) , zEC12 (atau arch10), z13 (atau arch11), z14 ( atau arch12), z15 (atau arch13), atau z16 (atau arch14 ).
Izinkan atau larang nama simbolik untuk register.
Peringatkan setiap kali operan untuk register basis atau indeks telah ditentukan tetapi bernilai nol.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor TMS320C6000.
Aktifkan (hanya) instruksi dari arsitektur arch. Secara default, semua instruksi diizinkan. Nilai arch berikut diterima: c62x, c64x, c64x+, c67x , c67x+, c674x.
Opsi -mdsbt menyebabkan assembler menghasilkan atribut Tag_ABI_DSBT dengan nilai 1, yang menunjukkan bahwa kode tersebut menggunakan pengalamatan DSBT. Opsi -mno-dsbt, secara default, menyebabkan tag memiliki nilai 0, menunjukkan bahwa kode tidak menggunakan pengalamatan DSBT. Penaut akan mengeluarkan peringatan jika objek dengan tipe berbeda (DSBT dan non-DSBT) ditautkan bersama.
Opsi -mpid= menyebabkan assembler menghasilkan atribut Tag_ABI_PID dengan nilai yang menunjukkan bentuk pengalamatan data yang digunakan oleh kode. -mpid=no, default, menunjukkan pengalamatan data yang bergantung pada posisi, -mpid=near menunjukkan pengalamatan yang tidak bergantung pada posisi dengan akses GOT menggunakan pengalamatan DP dekat, dan -mpid=far menunjukkan pengalamatan yang tidak tergantung posisi dengan akses GOT menggunakan pengalamatan DP jauh. Penaut akan mengeluarkan peringatan jika objek yang dibangun dengan pengaturan berbeda dari opsi ini ditautkan bersama.
Opsi -mpic menyebabkan assembler menghasilkan atribut Tag_ABI_PIC dengan nilai 1, menunjukkan bahwa kode tersebut menggunakan pengalamatan kode yang tidak tergantung posisi, The -mno Opsi -pic , default, menyebabkan tag memiliki nilai 0, menunjukkan pengalamatan kode yang bergantung pada posisi. Penghubung akan mengeluarkan peringatan jika objek dengan tipe berbeda (tergantung posisi dan tidak tergantung posisi) dihubungkan bersama.
Hasilkan kode untuk endianness yang ditentukan. Standarnya adalah little-endian.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor TILE-Gx.
Pilih ukuran kata, baik 32 bit atau 64 bit.
Pilih endianness, baik big-endian (-EB) atau little-endian (-EL).
Opsi berikut ini tersedia saat dikonfigurasi untuk prosesor Visium.
Opsi ini menentukan arsitektur target. Jika dilakukan upaya untuk merakit sebuah instruksi yang tidak akan dieksekusi pada arsitektur target, assembler akan mengeluarkan pesan kesalahan. Nama-nama berikut dikenali: mcm24 mcm gr5 gr6
Opsi berikut tersedia saat dikonfigurasi untuk prosesor Xtensa.
Mengontrol perawatan kumpulan literal. Standarnya adalah --no-text-section-literals, yang menempatkan literal di bagian terpisah di file keluaran. Ini memungkinkan kumpulan literal ditempatkan di RAM/ROM data. Dengan --text-section-literals, literal diselingi di bagian teks agar sedekat mungkin dengan referensinya. Ini mungkin diperlukan untuk file rakitan besar, yang literalnya berada di luar jangkauan instruksi L32R di bagian teks. Literal dikelompokkan ke dalam kumpulan mengikuti arahan .literal_position atau sebelum petunjuk ENTRY. Opsi ini hanya memengaruhi literal yang direferensikan melalui instruksi L32R relatif-PC; literal untuk instruksi mode absolut L32R ditangani secara terpisah.
Mengontrol perawatan kumpulan literal. Standarnya adalah --no-auto-litpools, yang jika tidak ada --text-section-literals menempatkan literal di bagian terpisah di file keluaran. Ini memungkinkan kumpulan literal ditempatkan di RAM/ROM data. Dengan --auto-litpools, literal diselingi di bagian teks untuk membuatnya sedekat mungkin dengan referensinya, arahan .literal_position yang eksplisit tidak diperlukan. Ini mungkin diperlukan untuk fungsi yang sangat besar, di mana kumpulan literal tunggal di awal fungsi mungkin tidak dapat dijangkau oleh instruksi L32R di bagian akhir. Opsi ini hanya memengaruhi literal yang direferensikan melalui instruksi L32R relatif-PC; literal untuk instruksi mode absolut L32R ditangani secara terpisah. Saat digunakan bersama dengan --text-section-literals, --litpools diutamakan.
Tunjukkan kepada assembler apakah instruksi L32R menggunakan pengalamatan absolut atau relatif PC. Jika prosesor menyertakan opsi pengalamatan absolut, defaultnya adalah menggunakan relokasi L32R absolut. Jika tidak, hanya relokasi L32R relatif PC yang dapat digunakan.
Aktifkan atau nonaktifkan penyelarasan otomatis untuk mengurangi penalti cabang dengan biaya tertentu dalam ukuran kode. Optimalisasi ini diaktifkan secara default. Perhatikan bahwa assembler akan selalu menyelaraskan instruksi seperti LOOP yang memiliki persyaratan penyelarasan tetap.
Aktifkan atau nonaktifkan transformasi instruksi panggilan untuk mengizinkan panggilan di rentang alamat yang lebih luas. Opsi ini harus digunakan saat target panggilan berpotensi berada di luar jangkauan. Ini dapat menurunkan ukuran kode dan kinerja, tetapi penaut umumnya dapat mengoptimalkan overhead yang tidak perlu saat panggilan berakhir dalam jangkauan. Standarnya adalah --no-longcalls.
Aktifkan atau nonaktifkan semua transformasi assembler dari instruksi Xtensa, termasuk relaksasi dan pengoptimalan. Standarnya adalah --transform; --no-transform sebaiknya hanya digunakan dalam kasus yang jarang terjadi saat instruksi harus persis seperti yang ditentukan dalam sumber rakitan. Menggunakan --no-transform menyebabkan operan instruksi di luar jangkauan menjadi kesalahan.
Ganti nama bagian nama lama menjadi nama baru. Opsi ini dapat digunakan berkali-kali untuk mengganti nama beberapa bagian.
Mengaktifkan atau menonaktifkan transformasi instruksi lompatan untuk memungkinkan lompatan melintasi rentang alamat yang lebih besar. Opsi ini harus digunakan ketika target lompatan berpotensi berada di luar jangkauan. Dengan tidak adanya lompatan seperti itu, opsi ini tidak memengaruhi ukuran atau kinerja kode. Standarnya adalah --trampolin.
Pilih tag ABI yang tertulis di bagian .xtensa.info. Tag ABI menunjukkan ABI dari kode rakitan. Peringatan dikeluarkan oleh penaut saat mencoba menautkan file objek dengan tag ABI yang tidak konsisten. ABI default dipilih oleh konfigurasi inti Xtensa.
Opsi berikut tersedia saat dikonfigurasi untuk prosesor Z80.
@chapter Fitur Ketergantungan Z80
Opsi ini menentukan prosesor target. Assembler akan mengeluarkan pesan kesalahan jika dilakukan upaya untuk merakit instruksi yang tidak akan dieksekusi pada prosesor target. Nama prosesor berikut dikenali: z80, z180, ez80, gbz80, z80n, r800. Selain set instruksi dasar, assembler dapat diberitahu untuk menerima beberapa ekstensi mnemonik. Misalnya, -march=z180+sli+infc memperluas z180 dengan instruksi SLI dan IN F,(C) . Ekstensi berikut saat ini didukung: full (semua instruksi yang diketahui), adl (mode ADL CPU secara default, hanya eZ80), sli (instruksi dikenal sebagai SLI, SLL atau SL1), xyhl (instruksi dengan bagian register indeks: IXL , IXH, IYL, IYH), xdcb (petunjuk seperti RotOp (II +d),R dan BitOp n,(II+d),R), infc (instruksi IN F,(C) atau IN (C)), outc0 (instruksi OUT (C),0). Perhatikan bahwa alih-alih memperluas set instruksi dasar, mnemonik ekstensi yang dimulai dengan - mencabut fungsionalitas masing-masing: -march=z80-full+xyhl terlebih dahulu menghapus semua ekstensi default dan menambahkan dukungan untuk bagian register indeks saja. Jika opsi ini tidak ditentukan maka diasumsikan -march=z80+xyhl+infc.
Tandai semua label dengan awalan tertentu sebagai lokal. Tetapi label tersebut dapat ditandai secara global secara eksplisit dalam kode. Opsi ini tidak mengubah prefiks label lokal default .L, hanya menambahkan yang baru.
Terima label tanpa titik dua. Semua simbol di awal baris diperlakukan sebagai label.
Terima kode assembler yang dihasilkan oleh SDCC.
Format angka floating point presisi tunggal. Bawaan: ieee754 (32 bit).
Format angka floating point presisi ganda. Bawaan: ieee754 (64 bit).
gcc (1), ld (1), and the Info entries for binutils and ld.
Hak Cipta (c) 1991-2023 Free Software Foundation, Inc.
Izin diberikan untuk menyalin, mendistribusikan dan/atau memodifikasi dokumen ini di bawah persyaratan Lisensi Dokumentasi Bebas GNU, Versi 1.3 atau versi selanjutnya yang diterbitkan oleh Free Software Foundation; tanpa Bagian Invarian, tanpa Teks Sampul Depan, dan tanpa Teks Sampul Belakang. Salinan lisensi disertakan dalam bagian berjudul Lisensi Dokumentasi Bebas GNU.