as - manual referensi, opsi, contoh perintah


NAMA

as AS - assembler GNU portabel.

RINGKASAN

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

TARGET

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]

KETERANGAN

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

PILIHAN

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

-a[cdghlmns]

Aktifkan cantuman, dengan berbagai cara:

-ac

menghilangkan kondisi palsu

-ad

hilangkan arahan debug

-ag

sertakan informasi umum, seperti versi dan opsi yang diteruskan

-ah

termasuk sumber tingkat tinggi

-al

termasuk perakitan

-am

termasuk ekspansi makro

-an

menghilangkan pemrosesan formulir

-as

menyertakan simbol

=file

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.

--alternate

Mulai dalam mode makro alternatif.

--compress-debug-sections

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.

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

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.

--nocompress-debug-sections

Jangan kompres bagian debug DWARF. Ini biasanya default untuk semua target kecuali x86/x86_64, tetapi opsi waktu konfigurasi dapat digunakan untuk menimpanya.

-D

Aktifkan denugging di backend spesifik target, jika didukung. Jika tidak diabaikan. Meskipun diabaikan, opsi ini diterima untuk kompatibilitas skrip dengan panggilan ke assembler lain.

--debug-prefix-map old=new

Saat menyusun file dalam direktori lama, catat informasi debug yang menjelaskannya sebagai baru sebagai gantinya.

--defsym sym=value

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.

--dump-config

Menampilkan bagaimana assembler dikonfigurasi dan kemudian keluar.

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

Opsi ini mengontrol apakah assembler ELF harus menghasilkan simbol umum dengan tipe STT_COMMON. Default dapat dikontrol dengan opsi konfigurasi --enable-elf-stt-common.

--emulation=name

Jika assembler dikonfigurasi untuk mendukung beberapa konfigurasi target yang berbeda, maka opsi ini dapat digunakan untuk memilih bentuk yang diinginkan.

-f

cepat --- lewati spasi kosong dan komentar preprocessing (asumsikan sumber adalah keluaran kompiler).

-g
--gen-debug

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.

--gstabs

Hasilkan informasi debugging tusukan untuk setiap baris assembler. Ini dapat membantu men-debug kode assembler, jika debugger dapat menanganinya.

--gstabs+

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.

--gdwarf-2

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.

--gdwarf-3

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.

--gdwarf-4

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.

--gdwarf-5

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.

--gdwarf-sections

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.

--gdwarf-cie-version=version

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.

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

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.

--gsframe
--gsframe

Buat bagian .sframe dari arahan CFI.

--hash-size N

Diabaikan. Didukung untuk kompatibilitas baris perintah dengan assembler lain.

--help

Cetak ringkasan opsi baris perintah dan keluar.

--target-help

Cetak ringkasan semua opsi spesifik target dan keluar.

-I dir

Tambahkan direktori dir ke daftar pencarian untuk arahan .include.

-J

Jangan peringatkan tentang luapan yang ditandatangani.

-K

Keluarkan peringatan saat tabel perbedaan diubah untuk perpindahan yang lama.

-L
--keep-locals

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.

--listing-lhs-width=number

Tetapkan lebar maksimum, dengan kata lain, kolom data keluaran untuk daftar assembler ke angka.

--listing-lhs-width2=number

Tetapkan lebar maksimum, dengan kata lain, kolom data keluaran untuk baris lanjutan dalam daftar assembler ke angka.

--listing-rhs-width=number

Tetapkan lebar maksimum baris sumber input, seperti yang ditampilkan dalam daftar, ke angka byte.

--listing-cont-lines=number

Setel jumlah maksimum baris yang dicetak dalam daftar untuk satu baris input ke angka + 1.

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

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

--no-pad-sections

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.

-o objfile

Beri nama output objek-file dari as objfile.

-R

Lipat bagian data ke dalam bagian teks.

--reduce-memory-overheads

Diabaikan. Didukung untuk kompatibilitas dengan alat yang memberikan opsi yang sama untuk assembler dan linker.

--sectname-subst

Hormati urutan substitusi dalam nama bagian.

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

Keluarkan kesalahan atau peringatan untuk direktif ELF .size yang tidak valid.

--statistics

Cetak ruang maksimum (dalam byte) dan total waktu (dalam detik) yang digunakan oleh perakitan.

--strip-local-absolute

Hapus simbol absolut lokal dari tabel simbol keluar.

-v
-version

Cetak versi sebagai.

--version

Cetak versi sebagai dan keluar.

-W
--no-warn

Menekan pesan peringatan.

--fatal-warnings

Perlakukan peringatan sebagai kesalahan.

--warn

Jangan menekan pesan peringatan atau memperlakukannya sebagai kesalahan.

-w

Diabaikan.

-x

Diabaikan.

-Z

Hasilkan file objek bahkan setelah kesalahan.

-- | files ...

Input standar, atau file sumber untuk dirakit.

Opsi berikut tersedia saat dikonfigurasi untuk mode 64-bit Arsitektur ARM (AArch64).

-EB

Opsi ini menetapkan bahwa output yang dihasilkan oleh assembler harus ditandai sebagai dikodekan untuk prosesor big-endian.

-EL

Opsi ini menetapkan bahwa output yang dihasilkan oleh assembler harus ditandai sebagai dikodekan untuk prosesor little-endian.

-mabi=abi

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.

-mcpu=processor[+extension...]

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.

-march=architecture[+extension...]

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,

-mverbose-error

Opsi ini mengaktifkan pesan kesalahan verbose untuk gas AArch64. Opsi ini diaktifkan secara default.

-mno-verbose-error

Opsi ini menonaktifkan pesan kesalahan verbose di AArch64 gas.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor Alpha.

-mcpu

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.

-mdebug
-no-mdebug

Mengaktifkan atau menonaktifkan pembuatan enkapsulasi .mdebug untuk perintah stab dan deskriptor prosedur. Defaultnya adalah mengaktifkan .mdebug secara otomatis saat direktif tusukan pertama terlihat.

-relax

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.

-replace
-noreplace

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.

-g

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.

-Gsize

Simbol umum lokal yang lebih besar dari ukuran ditempatkan di .bss, sedangkan simbol yang lebih kecil ditempatkan di .sbss.

-F
-32addr

Opsi ini diabaikan untuk kompatibilitas mundur.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor ARC.

-mcpu=cpu

Opsi ini memilih varian prosesor inti.

-EB | -EL

Pilih keluaran big-endian (-EB) atau little-endian (-EL).

-mcode-density

Aktifkan petunjuk ekstensi Kepadatan Kode.

Opsi berikut tersedia saat dikonfigurasi untuk keluarga prosesor ARM.

-mcpu=processor[+extension...]

Tentukan varian prosesor ARM mana yang menjadi target.

-march=architecture[+extension...]

Tentukan varian arsitektur ARM mana yang digunakan oleh target.

-mfpu=floating-point-format

Pilih arsitektur Floating Point mana yang menjadi target.

-mfloat-abi=abi

Pilih ABI floating point mana yang digunakan.

-mthumb

Aktifkan decoding instruksi hanya jempol.

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

Pilih konvensi pemanggilan prosedur mana yang digunakan.

-EB | -EL

Pilih keluaran big-endian (-EB) atau little-endian (-EL).

-mthumb-interwork

Tentukan bahwa kode telah dibuat dengan mempertimbangkan interworking antara kode Thumb dan ARM.

-mccs

Mengaktifkan mode kompatibilitas sintaks perakitan CodeComposer Studio.

-k

Tentukan bahwa kode PIC telah dihasilkan.

Opsi berikut tersedia saat dikonfigurasikan untuk keluarga prosesor Blackfin.

-mcpu=processor[-sirevision]

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.

-mfdpic

Merakit untuk FDPIC ABI.

-mno-fdpic
-mnopic

Nonaktifkan -mfdpic.

Opsi berikut tersedia saat dikonfigurasi untuk keluarga prosesor kernel Linux BPF.

@chapter Fitur Ketergantungan BPF

Pilihan

-EB

Opsi ini menentukan bahwa assembler harus mengeluarkan eBPF big-endian.

-EL

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.

-march=archname

Merakit untuk arsitektur archname. Opsi --help mencantumkan nilai yang valid untuk archname.

-mcpu=cpuname

Merakit untuk arsitektur cpuname. Opsi --help mencantumkan nilai yang valid untuk cpuname.

-EL
-mlittle-endian

Hasilkan keluaran little-endian.

-EB
-mbig-endian

Hasilkan keluaran big-endian.

-fpic
-pic

Menghasilkan kode posisi-independen.

-mljump
-mno-ljump

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.

-mbranch-stub
-mno-branch-stub

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.

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

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.

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

Aktifkan/nonaktifkan transformasi instruksi jsri ke bsr. Opsi ini diaktifkan secara default.

-mnolrw
-mno-lrw

Mengaktifkan/menonaktifkan transformasi instruksi lrw menjadi pasangan movih/ori.

-melrw
-mno-elrw

Aktifkan/nonaktifkan petunjuk lrw yang diperluas. Opsi ini diaktifkan secara default untuk prosesor seri CK800.

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

Aktifkan/nonaktifkan penempatan kumpulan literal setelah setiap fungsi.

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

Aktifkan/nonaktifkan penempatan kumpulan literal setelah cabang tanpa syarat. Opsi ini diaktifkan secara default.

-mistack
-mno-istack

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.

-mhard-float

Aktifkan instruksi hard float.

-mmp

Aktifkan instruksi multiprosesor.

-mcp

Aktifkan instruksi koprosesor.

-mcache

Aktifkan instruksi prefetch cache.

-msecurity

Aktifkan petunjuk keamanan C-SKY.

-mtrust

Aktifkan instruksi kepercayaan C-SKY.

-mdsp

Aktifkan petunjuk DSP.

-medsp

Aktifkan petunjuk DSP yang disempurnakan.

-mvdsp

Aktifkan instruksi vektor DSP.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor Epiphany.

-mepiphany

Menentukan bahwa instruksi 32 dan 16 bit diperbolehkan. Ini adalah perilaku default.

-mepiphany16

Batasi instruksi yang diizinkan hanya pada set 16 bit.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor H8/300. @chapter Fitur Ketergantungan H8/300

Pilihan

Versi as Renesas H8/300 memiliki satu opsi yang bergantung pada mesin:

-h-tick-hex

Mendukung konstanta hex gaya H'00 selain gaya 0x00.

-mach=name

Mengatur varian mesin H8300. Nama mesin berikut dikenali: h8300h, h8300hn, h8300s, h8300sn, h8300sx dan h8300sxn.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor i386.

--32 | --x32 | --64

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

-n

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.

--divide

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.

-march=CPU[+EXTENSION...]

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, tsx, invpcid, clflush, mwaitx, clzero, wbnoinvd, pconfig, waitpkg, uintr, cldemote, rdpru, mcommit, sev_es, lwp, fma4, xop, cx16 , syscall, rdtscp, 3dnow, 3dnowa, sse4a, sse5 , snp, invlpgb, tlbsync, svme 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.

-mtune=CPU

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.

-msse2avx

Opsi ini menentukan bahwa assembler harus menyandikan instruksi SSE dengan awalan VEX.

-muse-unaligned-vector-move

Opsi ini menentukan bahwa assembler harus menyandikan perpindahan vektor yang selaras sebagai perpindahan vektor yang tidak selaras.

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

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.

-mavxscalar=128
-mavxscalar=256

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.

-mvexwig=0
-mvexwig=1

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.

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

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 .

-mevexwig=0
-mevexwig=1

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.

-mmnemonic=att
-mmnemonic=intel

Opsi ini menentukan mnemonik instruksi untuk mencocokkan instruksi. Arahan .att_mnemonic dan .intel_mnemonic akan diutamakan.

-msyntax=att
-msyntax=intel

Opsi ini menentukan sintaks instruksi saat memproses instruksi. Arahan .att_syntax dan .intel_syntax akan diutamakan.

-mnaked-reg

Opsi ini menetapkan bahwa register tidak memerlukan awalan %. Arahan .att_syntax dan .intel_syntax akan diutamakan.

-madd-bnd-prefix

Opsi ini memaksa assembler untuk menambahkan awalan BND ke semua cabang, bahkan jika awalan tersebut tidak ditentukan secara eksplisit dalam kode sumber.

-mno-shared

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.

-mbig-obj

Pada target PE/COFF opsi ini memaksa penggunaan format file objek besar, yang memungkinkan lebih dari 32768 bagian.

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

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.

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

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.

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

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.

-malign-branch-boundary=NUM

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.

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

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.

-malign-branch-prefix-size=NUM

Opsi ini menentukan jumlah awalan maksimum pada instruksi untuk menyelaraskan cabang. NUM harus antara 0 dan 5. NUM default adalah 5.

-mbranches-within-32B-boundaries

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.

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

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.

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

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.

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

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.

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

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.

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

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.

-mamd64
-mintel64

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.

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

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.

-mip2022ext

Menentukan bahwa instruksi IP2022 yang diperluas diizinkan.

-mip2022

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.

-m32c

Merakit instruksi M32C.

-m16c

Merakit instruksi M16C (default).

-relax

Aktifkan dukungan untuk relaksasi waktu tautan.

-h-tick-hex

Mendukung konstanta hex gaya H'00 selain gaya 0x00.

Opsi berikut tersedia saat dikonfigurasi untuk seri Renesas M32R (sebelumnya Mitsubishi M32R).

--m32rx

Tentukan prosesor mana dalam keluarga M32R yang menjadi target. Standarnya biasanya M32R, tetapi opsi ini mengubahnya menjadi M32RX.

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

Menghasilkan pesan peringatan ketika konstruksi paralel yang dipertanyakan ditemukan.

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

Jangan menghasilkan pesan peringatan ketika konstruk paralel yang dipertanyakan ditemukan.

Opsi berikut ini tersedia jika dikonfigurasi untuk Motorola seri 68000.

-l

Persingkat referensi ke simbol yang tidak ditentukan, menjadi satu kata, bukan dua.

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

Tentukan prosesor apa dalam keluarga 68000 yang menjadi target. Standarnya biasanya adalah 68020, tetapi ini dapat diubah pada waktu konfigurasi.

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

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.

-m68851 | -mno-68851

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.

-relax-section

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.

-relax-all

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.

-no-relax

Jangan mengganti cabang atau panggilan apa pun.

-EB

Hasilkan keluaran big-endian.

-EL

Hasilkan keluaran little-endian. Ini defaultnya.

-march=architecture

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.

-mlink-relax

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.

-mno-link-relax

Asumsikan bahwa LD tidak akan mengoptimalkan instruksi LDI32. Akibatnya, relokasi DIFF tidak akan dipancarkan.

-mno-warn-regname-label

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.

-G num

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.

-EB

Hasilkan keluaran format big endian.

-EL

Hasilkan output format endian kecil.

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

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.

-march=cpu

Hasilkan kode untuk CPU MIPS tertentu.

-mtune=cpu

Jadwalkan dan setel untuk CPU MIPS tertentu.

-mfix7000
-mno-fix7000

Menyebabkan nops dimasukkan jika pembacaan register tujuan dari instruksi mfhi atau mflo terjadi dalam dua instruksi berikut.

-mfix-rm7000
-mno-fix-rm7000

Menyebabkan nops dimasukkan jika instruksi dmult atau dmultu diikuti oleh instruksi beban.

-mfix-r5900
-mno-fix-r5900

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.

-mdebug
-no-mdebug

Menyebabkan hasil debug gaya stabs untuk masuk ke bagian .mdebug gaya ECOFF alih-alih bagian ELF .stabs standar.

-mpdr
-mno-pdr

Mengontrol pembuatan bagian .pdr.

-mgp32
-mfp32

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.

-mgp64
-mfp64

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.

-mfpxx

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 .

-modd-spreg
-mno-odd-spreg

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.

-mips16
-no-mips16

Hasilkan kode untuk prosesor MIPS 16. Ini sama dengan meletakkan .module mips16 di awal file rakitan. -no-mips16 mematikan opsi ini.

-mmips16e2
-mno-mips16e2

Aktifkan penggunaan instruksi MIPS16e2 dalam mode MIPS16. Ini sama dengan meletakkan .module mips16e2 di awal file rakitan. -mno-mips16e2 mematikan opsi ini.

-mmicromips
-mno-micromips

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.

-msmartmips
-mno-smartmips

Mengaktifkan ekstensi SmartMIPS ke set instruksi MIPS32. Ini sama dengan meletakkan .module smartmips di awal file rakitan. -mno-smartmips mematikan opsi ini.

-mips3d
-no-mips3d

Hasilkan kode untuk Ekstensi Khusus Aplikasi MIPS-3D. Ini memberitahu assembler untuk menerima instruksi MIPS-3D. -no-mips3d mematikan opsi ini.

-mdmx
-no-mdmx

Hasilkan kode untuk Ekstensi Khusus Aplikasi MDMX. Ini memberitahu assembler untuk menerima instruksi MDMX. -no-mdmx mematikan opsi ini.

-mdsp
-mno-dsp

Hasilkan kode untuk Ekstensi Khusus Aplikasi DSP Rilis 1. Ini memberitahu assembler untuk menerima instruksi DSP Rilis 1. -mno-dsp menonaktifkan opsi ini.

-mdspr2
-mno-dspr2

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.

-mdspr3
-mno-dspr3

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.

-mmsa
-mno-msa

Hasilkan kode untuk MIPS SIMD Architecture Extension. Ini memberitahu assembler untuk menerima instruksi MSA. -mno-msa mematikan opsi ini.

-mxpa
-mno-xpa

Hasilkan kode untuk Ekstensi MIPS eXtended Physical Address (XPA). Ini memberitahu assembler untuk menerima instruksi XPA. -mno-xpa mematikan opsi ini.

-mmt
-mno-mt

Hasilkan kode untuk Ekstensi Khusus Aplikasi MT. Ini memberitahu assembler untuk menerima instruksi MT. -mno-mt mematikan opsi ini.

-mmcu
-mno-mcu

Hasilkan kode untuk Ekstensi Khusus Aplikasi MCU. Ini memberitahu assembler untuk menerima instruksi MCU. -mno-mcu mematikan opsi ini.

-mcrc
-mno-crc

Hasilkan kode untuk Ekstensi Khusus Aplikasi MIPS cyclic redundancy check (CRC). Ini memberitahu assembler untuk menerima instruksi CRC. -mno-crc mematikan opsi ini.

-mginv
-mno-ginv

Hasilkan kode untuk Ekstensi Khusus Aplikasi Global INValidate (GINV). Ini memberitahu assembler untuk menerima instruksi GINV. -mno-ginv mematikan opsi ini.

-mloongson-mmi
-mno-loongson-mmi

Hasilkan kode untuk Ekstensi Khusus Aplikasi Loongson MultiMedia Extensions Instructions (MMI). Ini memberitahu assembler untuk menerima instruksi MMI. -mno-loongson-mmi mematikan opsi ini.

-mloongson-cam
-mno-loongson-cam

Buat kode untuk instruksi Loongson Content Address Memory (CAM). Ini memberitahu assembler untuk menerima instruksi Loongson CAM. -mno-loongson-cam menonaktifkan opsi ini.

-mloongson-ext
-mno-loongson-ext

Hasilkan kode untuk instruksi Loongson EXtensions (EXT). Ini memberitahu assembler untuk menerima instruksi Loongson EXT. -mno-loongson-ext menonaktifkan opsi ini.

-mloongson-ext2
-mno-loongson-ext2

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.

-minsn32
-mno-insn32

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.

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

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.

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

Opsi --relax-branch memungkinkan relaksasi cabang di luar jangkauan. Secara default --no-relax-branch dipilih, menyebabkan setiap cabang di luar jangkauan menghasilkan kesalahan.

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

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.

-mnan=encoding

Pilih antara IEEE 754-2008 (-mnan=2008) atau format enkode NaN lama (-mnan=legacy). Yang terakhir adalah default.

--emulation=name

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.

-nocpp

sebagai mengabaikan opsi ini. Itu diterima untuk kompatibilitas dengan alat asli.

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

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.

-n

Saat opsi ini digunakan, as akan mengeluarkan peringatan setiap kali menghasilkan instruksi nop dari makro.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor LoongArch.

-fpic
-fPIC

Menghasilkan kode posisi-independen

-fno-pic

Jangan membuat kode yang tidak bergantung pada posisi (default)

Opsi berikut tersedia saat dikonfigurasi untuk prosesor Meta.

"-mcpu=metac11"

Hasilkan kode untuk Meta 1.1.

"-mcpu=metac12"

Hasilkan kode untuk Meta 1.2.

"-mcpu=metac21"

Hasilkan kode untuk Meta 2.1.

"-mfpu=metac21"

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.

"-O1"

Mengoptimalkan kinerja.

"-Os"

Mengoptimalkan ruang.

"-EL"

Menghasilkan keluaran data endian kecil.

"-EB"

Menghasilkan keluaran data endian kecil.

"-mpic"

Hasilkan PIC.

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

Tekan relaksasi fp-as-gp untuk file ini.

"-mb2bb-relax"

Optimasi cabang back-to-back.

"-mno-all-relax"

Tekan semua relaksasi untuk file ini.

"-march=<arch name>"

Rakit untuk arsitektur yang bisa berupa v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s.

"-mbaseline=<baseline>"

Rakit untuk baseline yang bisa jadi v2, v3, v3m.

"-mfpu-freg=FREG"

Tentukan konfigurasi FPU.

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

Tentukan versi abi bisa jadi v1, v2, v2fp, v2fpp.

"-m[no-]mac"

Aktifkan/Nonaktifkan dukungan instruksi Multiply.

"-m[no-]div"

Aktifkan/Nonaktifkan dukungan instruksi Divide.

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

Aktifkan/Nonaktifkan ekstensi 16-bit

"-m[no-]dx-regs"

Aktifkan/Nonaktifkan register d0/d1

"-m[no-]perf-ext"

Aktifkan/Nonaktifkan ekstensi Performa

"-m[no-]perf2-ext"

Aktifkan/Nonaktifkan Ekstensi kinerja 2

"-m[no-]string-ext"

Aktifkan/Nonaktifkan ekstensi String

"-m[no-]reduced-regs"

Aktifkan/Nonaktifkan opsi Reduced Register configuration (GPR16).

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

Aktifkan/Nonaktifkan ekstensi AUDIO ISA

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

Aktifkan/Nonaktifkan ekstensi FPU SP

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

Aktifkan/Nonaktifkan ekstensi FPU DP

"-m[no-]fpu-fma"

Aktifkan/Nonaktifkan FPU fusi-multiply-add instruksi

"-mall-ext"

Aktifkan semua ekstensi dan dukungan instruksi

Opsi berikut tersedia saat dikonfigurasi untuk prosesor PowerPC.

-a32

Hasilkan ELF32 atau XCOFF32.

-a64

Hasilkan ELF64 atau XCOFF64.

-K PIC

Tetapkan EF_PPC_RELOCATABLE_LIB di bendera ELF.

-mpwrx | -mpwr2

Hasilkan kode untuk POWER/2 (RIOS2).

-mpwr

Hasilkan kode untuk POWER (RIOS1)

-m601

Hasilkan kode untuk PowerPC 601.

-mppc, -mppc32, -m603, -m604

Hasilkan kode untuk PowerPC 603/604.

-m403, -m405

Hasilkan kode untuk PowerPC 403/405.

-m440

Hasilkan kode untuk PowerPC 440. BookE dan beberapa instruksi 405.

-m464

Hasilkan kode untuk PowerPC 464.

-m476

Hasilkan kode untuk PowerPC 476.

-m7400, -m7410, -m7450, -m7455

Hasilkan kode untuk PowerPC 7400/7410/7450/7455.

-m750cl, -mgekko, -mbroadway

Hasilkan kode untuk PowerPC 750CL/Gekko/Broadway.

-m821, -m850, -m860

Hasilkan kode untuk PowerPC 821/850/860.

-mppc64, -m620

Hasilkan kode untuk PowerPC 620/625/630.

-me200z2, -me200z4

Hasilkan kode untuk varian e200, e200z2 dengan LSP, e200z4 dengan SPE.

-me300

Hasilkan kode untuk keluarga PowerPC e300.

-me500, -me500x2

Hasilkan kode untuk kompleks inti Motorola e500.

-me500mc

Hasilkan kode untuk kompleks inti Freescale e500mc.

-me500mc64

Hasilkan kode untuk kompleks inti Freescale e500mc64.

-me5500

Hasilkan kode untuk kompleks inti Freescale e5500.

-me6500

Hasilkan kode untuk kompleks inti Freescale e6500.

-mlsp

Aktifkan instruksi LSP. (Menonaktifkan SPE dan SPE2.)

-mspe

Hasilkan kode untuk instruksi Motorola SPE. (Menonaktifkan LSP.)

-mspe2

Hasilkan kode untuk instruksi Freescale SPE2. (Menonaktifkan LSP.)

-mtitan

Hasilkan kode untuk kompleks inti AppliedMicro Titan.

-mppc64bridge

Menghasilkan kode untuk PowerPC 64, termasuk penginapan jembatan.

-mbooke

Hasilkan kode untuk BookE 32-bit.

-ma2

Hasilkan kode untuk arsitektur A2.

-maltivec

Hasilkan kode untuk prosesor dengan instruksi AltiVec.

-mvle

Hasilkan kode untuk instruksi Freescale PowerPC VLE.

-mvsx

Hasilkan kode untuk prosesor dengan instruksi Vector-Scalar (VSX).

-mhtm

Hasilkan kode untuk prosesor dengan instruksi Memori Transaksional Perangkat Keras.

-mpower4, -mpwr4

Hasilkan kode untuk arsitektur Power4.

-mpower5, -mpwr5, -mpwr5x

Hasilkan kode untuk arsitektur Power5.

-mpower6, -mpwr6

Hasilkan kode untuk arsitektur Power6.

-mpower7, -mpwr7

Hasilkan kode untuk arsitektur Power7.

-mpower8, -mpwr8

Hasilkan kode untuk arsitektur Power8.

-mpower9, -mpwr9

Hasilkan kode untuk arsitektur Power9.

-mpower10, -mpwr10

Hasilkan kode untuk arsitektur Power10.

-mfuture

Hasilkan kode untuk arsitektur 'masa depan'.

-mcell
-mcell

Hasilkan kode untuk arsitektur Cell Broadband Engine.

-mcom

Hasilkan instruksi umum kode Power/PowerPC.

-many

Hasilkan kode untuk arsitektur apa pun (PWR/PWRX/PPC).

-mregnames

Izinkan nama simbolik untuk register.

-mno-regnames

Jangan izinkan nama simbolik untuk register.

-mrelocatable

Dukungan untuk opsi -mrelocatable GCC.

-mrelocatable-lib

Dukungan untuk opsi -mrelocatable-lib GCC.

-memb

Tetapkan bit PPC_EMB dalam bendera ELF.

-mlittle, -mlittle-endian, -le

Hasilkan kode untuk mesin endian kecil.

-mbig, -mbig-endian, -be

Hasilkan kode untuk mesin big endian.

-msolaris

Hasilkan kode untuk Solaris.

-mno-solaris

Jangan membuat kode untuk Solaris.

-nops=count

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.

-fpic
-fPIC

Menghasilkan kode posisi-independen

-fno-pic

Jangan membuat kode yang tidak bergantung pada posisi (default)

-march=ISA

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.

-misa-spec=ISAspec

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.

-mpriv-spec=PRIVspec

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.

-mabi=ABI

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.

-mrelax

Manfaatkan relaksasi tautan untuk mengurangi jumlah instruksi yang diperlukan untuk mewujudkan alamat simbol. (bawaan)

-mno-relax

Jangan melakukan relaksasi linker.

-march-attr

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.

-mno-arch-attr

Jangan membuat bagian atribut riscv elf default jika .attribute directive tidak disetel.

-mcsr-check

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.

-mno-csr-check

Jangan lakukan pengecekan CSR.

-mlittle-endian

Hasilkan kode untuk mesin endian kecil.

-mbig-endian

Hasilkan kode untuk mesin big endian.

Lihat halaman info untuk dokumentasi opsi khusus RX.

Opsi berikut tersedia saat dikonfigurasi untuk rangkaian prosesor s390.

-m31
-m64

Pilih ukuran kata, baik 31/32 bit atau 64 bit.

-mesa
-mzarch

Pilih mode arsitektur, baik Arsitektur Sistem Perusahaan (esa) atau mode z/Arsitektur (zarch).

-march=processor

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

-mregnames
-mno-regnames

Izinkan atau larang nama simbolik untuk register.

-mwarn-areg-zero

Peringatkan setiap kali operan untuk register basis atau indeks telah ditentukan tetapi bernilai nol.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor TMS320C6000.

-march=arch

Aktifkan (hanya) instruksi dari arsitektur arch. Secara default, semua instruksi diizinkan. Nilai arch berikut diterima: c62x, c64x, c64x+, c67x , c67x+, c674x.

-mdsbt
-mno-dsbt

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.

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

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.

-mpic
-mno-pic

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.

-mbig-endian
-mlittle-endian

Hasilkan kode untuk endianness yang ditentukan. Standarnya adalah little-endian.

Opsi berikut tersedia saat dikonfigurasi untuk prosesor TILE-Gx.

-m32 | -m64

Pilih ukuran kata, baik 32 bit atau 64 bit.

-EB | -EL

Pilih endianness, baik big-endian (-EB) atau little-endian (-EL).

Opsi berikut ini tersedia saat dikonfigurasi untuk prosesor Visium.

-mtune=arch

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.

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

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.

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

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.

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

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.

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

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.

--longcalls | --no-longcalls

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.

--transform | --no-transform

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.

--rename-section oldname=newname

Ganti nama bagian nama lama menjadi nama baru. Opsi ini dapat digunakan berkali-kali untuk mengganti nama beberapa bagian.

--trampolines | --no-trampolines

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.

--abi-windowed | --abi-call0

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 baris perintah

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

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.

-local-prefix=prefix

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.

-colonless

Terima label tanpa titik dua. Semua simbol di awal baris diperlakukan sebagai label.

-sdcc

Terima kode assembler yang dihasilkan oleh SDCC.

-fp-s=FORMAT

Format angka floating point presisi tunggal. Bawaan: ieee754 (32 bit).

-fp-d=FORMAT

Format angka floating point presisi ganda. Bawaan: ieee754 (64 bit).

LIHAT JUGA

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

HAK CIPTA

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.