كتيبات سطر الأوامر

Man » دليل as عبر الإنترنت - وثائق مفصلة عبر الإنترنت لصفحة دليل as

🌍
AS - مُجمِّع GNU المحمول.

ملخص

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

الهدف

خيارات AArch64: [-EB|-EL] [-mabi=ABI]

خيارات Alpha: [-mcpu] [-mdebug | -no-mdebug] [-replace | -noreplace] [-relax] [-g] [-Gsize] [-F] [-32addr]

خيارات ARC: [-mcpu=cpu] [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS] [-mcode-density] [-mrelax] [-EB|-EL]

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

خيارات Blackfin: [-mcpu=processor[-sirevision]] [-mfdpic] [-mno-fdpic] [-mnopic]

خيارات BPF: [-EL] [-EB]

خيارات CRIS: [--underscore | --no-underscore] [--pic] [-N] [--emulation=criself | --emulation=crisaout] [--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]

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

خيارات D10V: [-O]

خيارات D30V: [-O|-n|-N]

خيارات EPIPHANY: [-mepiphany|-mepiphany16]

خيارات H8/300: [-h-tick-hex]

خيارات الهدف i386: [--32|--x32|--64] [-n] [-march=CPU[+EXTENSION...]] [-mtune=CPU]

خيارات الهدف IA-64: [-mconstant-gp|-mauto-pic] [-milp32|-milp64|-mlp64|-mp64] [-mle|mbe] [-mtune=itanium1|-mtune=itanium2] [-munwind-check=warning|-munwind-check=error] [-mhint.b=ok|-mhint.b=warning|-mhint.b=error] [-x|-xexplicit] [-xauto] [-xdebug]

خيارات الهدف IP2K: [-mip2022|-mip2022ext]

خيارات الهدف M32C: [-m32c|-m16c] [-relax] [-h-tick-hex]

خيارات الهدف M32R: [--m32rx|--[no-]warn-explicit-parallel-conflicts| --W[n]p]

خيارات الهدف M680X0: [-l] [-m68000|-m68010|-m68020|...]

خيارات الهدف M68HC11: [-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg] [-mshort|-mlong] [-mshort-double|-mlong-double] [--force-long-branches] [--short-branches] [--strict-direct-mode] [--print-insn-syntax] [--print-opcodes] [--generate-example]

خيارات الهدف MCORE: [-jsri2bsr] [-sifilter] [-relax] [-mcpu=[210|340]]

خيارات الهدف Meta: [-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] خيارات الهدف MICROBLAZE: [-mlittle-endian] [-mbig-endian]

خيارات الهدف MIPS: [-nocpp] [-EL] [-EB] [-O[optimization level]] [-g[debug level]] [-G num] [-KPIC] [-call_shared] [-non_shared] [-xgot [-mvxworks-pic] [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32] [-mfp64] [-mgp64] [-mfpxx] [-modd-spreg] [-mno-odd-spreg] [-march=CPU] [-mtune=CPU] [-mips1] [-mips2] [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2] [-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2] [-mips64r3] [-mips64r5] [-mips64r6] [-construct-floats] [-no-construct-floats] [-mignore-branch-isa] [-mno-ignore-branch-isa] [-mnan=encoding] [-trap] [-no-break] [-break] [-no-trap] [-mips16] [-no-mips16] [-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]

خيارات الهدف MMIX: [--fixed-special-register-names] [--globalize-symbols] [--gnu-syntax] [--relax] [--no-predefined-symbols] [--no-expand] [--no-merge-gregs] [-x] [--linker-allocated-gregs]

خيارات الهدف NDS32: [-EL] [-EB] [-O] [-Os] [-mcpu=cpu] [-misa=isa] [-mabi=abi] [-mall-ext] [-m[no-]16-bit] [-m[no-]perf-ext] [-m[no-]perf2-ext] [-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div] [-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext] [-m[no-]fpu-fma] [-mfpu-freg=FREG] [-mreduced-regs] [-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax] [-mb2bb]

خيارات الهدف PDP11: [-mpic|-mno-pic] [-mall] [-mno-extensions] [-mextension|-mno-extension] [-mcpu] [-mmachine]

خيارات الهدف لـ picoJava: [-mb|-me]

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

خيارات الهدف لـ PRU: [-link-relax] [-mnolink-relax] [-mno-warn-regname-label]

خيارات الهدف لـ RISC-V: [-fpic|-fPIC|-fno-pic] [-march=ISA|Profiles|Profiles_ISA] [-mabi=ABI] [-mlittle-endian|-mbig-endian]

خيارات الهدف لـ RL78: [-mg10] [-m32bit-doubles|-m64bit-doubles]

خيارات الهدف لـ RX: [-mlittle-endian|-mbig-endian] [-m32bit-doubles|-m64bit-doubles] [-muse-conventional-section-names] [-msmall-data-limit] [-mpid] [-mrelax] [-mint-register=number] [-mgcc-abi|-mrx-abi]

خيارات الهدف لـ s390: [-m31|-m64] [-mesa|-mzarch] [-march=CPU] [-mregnames|-mno-regnames] [-mwarn-areg-zero] [-mwarn-regtype-mismatch=strict -mwarn-regtype-mismatch=relaxed -mwarn-regtype-mismatch=no -mno-warn-regtype-mismatch]

خيارات الهدف لـ SCORE: [-EB][-EL][-FIXDD][-NWARN] [-SCORE5][-SCORE5U][-SCORE7][-SCORE3] [-march=score7][-march=score3] [-USE_R1][-KPIC][-O0][-G num][-V]

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

خيارات الهدف لـ TIC54X: [-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf] [-merrors-to-file |-me ]

خيارات الهدف لـ TIC6X: [-march=arch] [-mbig-endian|-mlittle-endian] [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far] [-mpic|-mno-pic]

خيارات الهدف لـ TILE-Gx: [-m32|-m64][-EB][-EL]

خيارات الهدف لـ Visium: [-mtune=arch]

خيارات الهدف لـ Xtensa: [--[no-]text-section-literals] [--[no-]auto-litpools] [--[no-]absolute-literals] [--[no-]target-align] [--[no-]longcalls] [--[no-]transform] [--rename-section oldname=newname] [--[no-]trampolines] [--abi-windowed|--abi-call0]

خيارات الهدف لـ Z80: [-march=CPU[-EXT][+EXT]] [-local-prefix=PREFIX] [-colonless] [-sdcc] [-fp-s=FORMAT] [-fp-d=FORMAT]


الوصف

في الواقع، GNU as هي عائلة من المجمعات. إذا كنت تستخدم (أو استخدمت) مجمع GNU على بنية معينة، فيجب أن تجد بيئة مماثلة إلى حد ما عند استخدامه على بنية أخرى. كل إصدار يشترك في الكثير مع الإصدارات الأخرى، بما في ذلك تنسيقات ملفات الكائنات ومعظم توجيهات المجمع (تسمى غالبًا العمليات الزائفة) وبناء جملة المجمع.

يهدف as في المقام الأول إلى تجميع مخرجات مترجم GNU C "gcc" لاستخدامها بواسطة الرابط "ld". ومع ذلك، فقد حاولنا جعل as يقوم بتجميع كل شيء بشكل صحيح، وهو ما يمكن لمجمعات أخرى لنفس الجهاز تجميعه. يتم توثيق أي استثناءات بشكل صريح. هذا لا يعني أن as يستخدم دائمًا نفس بناء الجملة الذي يستخدمه مجمع آخر لنفس البنية؛ على سبيل المثال، نحن نعلم بوجود عدة إصدارات غير متوافقة من بناء جملة تجميع 680x0.

في كل مرة تقوم فيها بتشغيل as، يقوم بتجميع برنامج مصدر واحد بالضبط. يتكون برنامج المصدر من ملف واحد أو أكثر. (يعتبر الإدخال القياسي أيضًا ملفًا.)

أنت تقدم لـ as سطر أوامر يحتوي على صفر أو أكثر من أسماء الملفات المدخلة. تتم قراءة الملفات المدخلة (من اسم الملف الأيسر إلى اسم الملف الأيمن). يتم التعامل مع وسيطة سطر الأوامر (في أي موضع) ليس لها معنى خاص كاسم ملف إدخال.

إذا قمت بتقديم أي ملفات لـ as، فإنه يحاول قراءة ملف إدخال واحد من الإدخال القياسي لـ as، وهو عادةً جهازك الطرفي. قد تحتاج إلى كتابة ctl-D لإخبار as أنه لا يوجد المزيد من البرنامج لتجميعه.

استخدم -- إذا كنت بحاجة إلى تحديد اسم ملف الإدخال القياسي بشكل صريح في سطر الأوامر الخاص بك.

إذا كان المصدر فارغًا، فإن as ينتج ملف كائن صغير وفارغ.

قد يكتب as تحذيرات ورسائل خطأ إلى ملف الخطأ القياسي (عادةً جهازك الطرفي). لا ينبغي أن يحدث هذا عندما يقوم المترجم بتشغيل as تلقائيًا. تُبلغ التحذيرات عن افتراض تم إجراؤه حتى يتمكن as من الاستمرار في تجميع برنامج به عيوب؛ تُبلغ الأخطاء عن مشكلة خطيرة توقف التجميع.

إذا كنت تستدعي as عبر مترجم GNU C، فيمكنك استخدام الخيار -Wa لتمرير الوسائط إلى المجمع. يجب فصل وسائط المجمع عن بعضها البعض (وعن -Wa) بفواصل. على سبيل المثال:

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

يمرر هذا خيارين إلى المجمع: -alh (إخراج قائمة إلى الإخراج القياسي مع مصدر عالي المستوى والتجميع) و -L (الاحتفاظ بالرموز المحلية في جدول الرموز).

عادةً لا تحتاج إلى استخدام آلية -Wa هذه، حيث يتم تمرير العديد من خيارات سطر الأوامر للمترجم تلقائيًا إلى المجمع بواسطة المترجم. (يمكنك استدعاء برنامج تشغيل مترجم GNU باستخدام الخيار -v لمعرفة الخيارات التي يمررها بالضبط إلى كل مرحلة من مراحل التجميع، بما في ذلك المجمع.)

الخيارات

@file

اقرأ خيارات سطر الأوامر من ملف. يتم إدراج الخيارات المقروءة بدلاً من خيار @file الأصلي. إذا لم يكن الملف موجودًا، أو لا يمكن قراءته، فسيتم التعامل مع الخيار حرفيًا، ولن تتم إزالته.

يتم فصل الخيارات الموجودة في الملف بمسافات بيضاء. يمكن تضمين حرف مسافة بيضاء في خيار عن طريق إحاطة الخيار بأكمله إما بعلامات اقتباس مفردة أو مزدوجة. يمكن تضمين أي حرف (بما في ذلك الشرطة المائلة للخلف) عن طريق وضع علامة الشرطة المائلة للخلف قبل الحرف المراد تضمينه. يمكن أن يحتوي الملف نفسه على خيارات @file إضافية؛ سيتم معالجة أي خيارات من هذا القبيل بشكل متكرر.


-a[cdghilmns]
شغّل خيارات إدراج، بأي طريقة من الطرق المتوفرة:

-ac تجاهل الشروط الكاذبة

-ad تجاهل التوجيهات الخاصة بالتصحيح

-ag تضمين معلومات عامة، مثل الإصدار والخيارات التي تم تمريرها

-ah تضمين الكود المصدر عالي المستوى

-al تضمين الكود المترجم

-ali
تضمين الكود المترجم مع ginsn

-am تضمين توسيعات الماكرو

-an تجاهل معالجة الأنماط

-as تضمين الرموز

=file
حدد اسم ملف الإدراج

يمكنك دمج هذه الخيارات؛ على سبيل المثال، استخدم -aln للحصول على إدراج الكود المترجم بدون معالجة الأنماط. يجب أن يكون خيار =file هو الأخير إذا تم استخدامه. عند استخدامه بمفرده، يأخذ الخيار -a بشكل افتراضي -ahls.

--alternate
ابدأ في وضع الماكرو البديل.

--compress-debug-sections
ضغط أقسام تصحيح الأخطاء DWARF باستخدام zlib مع SHF\_COMPRESSED من واجهة برمجة تطبيقات ELF. قد لا يكون ملف الكائن الناتج متوافقًا مع أدوات الربط وأدوات ملفات الكائنات القديمة. لاحظ أنه إذا كان الضغط سيجعل قسمًا معينًا أكبر، فلن يتم ضغطه.

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
--compress-debug-sections=zstd
تتحكم هذه الخيارات في كيفية ضغط أقسام تصحيح أخطاء DWARF. الخيار --compress-debug-sections=none يكافئ --nocompress-debug-sections. الخياران --compress-debug-sections=zlib و --compress-debug-sections=zlib-gabi يكافئان --compress-debug-sections. يقوم الخيار --compress-debug-sections=zlib-gnu بضغط أقسام تصحيح أخطاء DWARF باستخدام تنسيق zlib-gnu القديم. يتم تغيير أسماء أقسام التصحيح لتُضاف إليها بادئة .zdebug. يقوم الخيار --compress-debug-sections=zstd بضغط أقسام تصحيح أخطاء DWARF باستخدام zstd. لاحظ أنه إذا كان الضغط سيجعل قسمًا معينًا أكبر، فلن يتم ضغطه أو تغيير اسمه.

--nocompress-debug-sections
لا تقم بضغط أقسام تصحيح أخطاء DWARF. هذا هو عادةً الوضع الافتراضي لجميع الأنظمة الأساسية باستثناء x86/x86_64، ولكن يمكن استخدام خيار وقت التكوين لتجاوز ذلك.

-D
فعّل التصحيح في الواجهات الخلفية الخاصة بالهدف، إذا تم دعم ذلك. وإلا، يتم تجاهل ذلك. حتى إذا تم تجاهله، يتم قبول هذا الخيار من أجل توافق البرنامج النصي مع استدعاءات أدوات التجميع الأخرى.

--debug-prefix-map old=new
عند تجميع الملفات في الدليل old، سجّل معلومات التصحيح التي تصفها على أنها في الدليل new بدلاً من ذلك.

--defsym sym=value
حدد الرمز sym ليكون القيمة value قبل تجميع ملف الإدخال. يجب أن تكون قيمة عددًا صحيحًا. كما هو الحال في C، يشير البادئة 0x إلى قيمة سداسية عشرية، وتشير البادئة 0 إلى قيمة ثمانية. يمكن تجاوز قيمة الرمز داخل ملف مصدر باستخدام عامل التشغيل ".set".

--dump-config
يعرض كيف تم تكوين المُجمِّع ثم يخرج.

--elf-stt-common=no
--elf-stt-common=yes
تتحكم هذه الخيارات فيما إذا كان مُجمِّع ELF سيقوم بإنشاء رموز مشتركة بنوع "STT_COMMON". يمكن التحكم في الإعداد الافتراضي بواسطة خيار وقت التكوين --enable-elf-stt-common.

--emit-local-absolute
قم بإخراج حتى الرموز المطلقة المحددة مسبقًا (المحلية) إلى جدول الرموز الصادر. لاحظ أن هذا
ليس بالضبط عكس --strip-local-absolute.

--emulation=name
إذا كان برنامج التجميع مُهيّأ لدعم تكوينات مستهدفة مختلفة، فيمكن استخدام هذا
الخيار لتحديد الشكل المطلوب.

-f "fast"---تجاوز معالجة المسافات البيضاء والتعليقات (افترض أن المصدر هو ناتج المترجم).

-g
--gen-debug
قم بإنشاء معلومات تصحيح الأخطاء لكل سطر من مصدر برنامج التجميع باستخدام تنسيق تصحيح الأخطاء
المفضل الهدف. يعني هذا حاليًا إما STABS أو ECOFF أو DWARF2. عند استخدام تنسيق تصحيح الأخطاء
DWARF، يتم إصدار قسم ".debug_info" و ".debug_line" فقط عندما لا يقوم ملف التجميع بإنشائه بنفسه.

--gstabs
قم بإنشاء معلومات تصحيح أخطاء STABS لكل سطر من برنامج التجميع. قد يساعد هذا في تصحيح أخطاء
كود برنامج التجميع، إذا كان برنامج التصحيح يمكنه التعامل معه.

--gstabs+
قم بإنشاء معلومات تصحيح أخطاء STABS لكل سطر من برنامج التجميع، مع امتدادات GNU التي
قد يتعامل معها gdb فقط، والتي قد تتسبب في تعطل برامج التصحيح الأخرى أو رفضها لقراءة
برنامجك. قد يساعد هذا في تصحيح أخطاء كود برنامج التجميع. حاليًا، الامتداد الوحيد لـ GNU هو
موقع دليل العمل الحالي في وقت التجميع.

--gdwarf-2
قم بإنشاء معلومات تصحيح أخطاء DWARF2 لكل سطر من برنامج التجميع. قد يساعد هذا في تصحيح أخطاء
كود برنامج التجميع، إذا كان برنامج التصحيح يمكنه التعامل معه. ملاحظة - هذا الخيار مدعوم فقط بواسطة بعض
الأهداف، وليس كلها.

--gdwarf-3
هذا الخيار هو نفسه خيار --gdwarf-2، باستثناء أنه يسمح بإمكانية
إنشاء معلومات تصحيح إضافية وفقًا للإصدار 3 من مواصفات DWARF.
ملاحظة - لا يضمن تمكين هذا الخيار إنشاء أي معلومات إضافية، فالخيار متروك لكل هدف.

--gdwarf-4
هذا الخيار هو نفسه خيار --gdwarf-2، باستثناء أنه يسمح بإمكانية
إنشاء معلومات تصحيح إضافية وفقًا للإصدار 4 من مواصفات DWARF.
ملاحظة - لا يضمن تمكين هذا الخيار إنشاء أي معلومات إضافية، فالخيار متروك لكل هدف.

--gdwarf-5
هذا الخيار هو نفسه خيار --gdwarf-2، باستثناء أنه يسمح بإمكانية
إنشاء معلومات تصحيح إضافية وفقًا للإصدار 5 من مواصفات DWARF.
ملاحظة - لا يضمن تمكين هذا الخيار إنشاء أي معلومات إضافية، فالخيار متروك لكل هدف.

--gdwarf-sections
بدلاً من إنشاء قسم .debug_line، قم بإنشاء سلسلة من أقسام .debug_line.foo حيث
foo هو اسم القسم المقابل للكود. على سبيل المثال، إذا كان اسم قسم الكود هو .text.func، فسيتم وضع معلومات سطر DWARF الخاصة به في قسم يسمى
.debug_line.text.func. إذا كان اسم قسم الكود هو .text فقط، فسيظل اسم قسم سطر التصحيح هو .debug_line بدون أي لاحقة.

--gdwarf-cie-version=version

يتحكم في إصدار مدخلات المعلومات الشائعة (CIEs) الخاصة بـ DWARF التي سيتم إنتاجها. عندما لا يتم تحديد هذا الخيار، يكون الإعداد الافتراضي هو الإصدار 1، على الرغم من أن بعض الأهداف يمكن أن تعدل هذا الإعداد الافتراضي. القيم الأخرى المحتملة للإصدار هي 3 أو 4.

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

تتحكم هذه الخيارات في ما إذا كان يجب على مُجمِّع ELF إنشاء سمات GNU Build إذا لم تكن موجودة في مصادر الإدخال. يمكن التحكم في الإعداد الافتراضي عن طريق خيار التكوين --enable-generate-build-notes.

--gsframe
--gsframe
--gsframe=no
--gsframe=yes

قم بإنشاء قسم .sframe من توجيهات CFI. يتصرف خيار --gsframe=yes الصريح بنفس طريقة --gsframe. يمكن تعطيل الإنشاء باستخدام --gsframe=no. يمكن التحكم في الإعداد الافتراضي عن طريق خيار التكوين --enable-default-sframe.

--hash-size N

تم تجاهله. مدعوم لتوافق سطر الأوامر مع مُجمِّعات أخرى.

--help

اطبع ملخصًا لخِيَارَات سطر الأوامر واخرج.

--target-help

اطبع ملخصًا لجميع الخيارات الخاصة بالهدف واخرج.

--info

لا تقم بإخفاء الرسائل الإعلامية.

--no-info

أخفِ الرسائل الإعلامية.

-I dir

أضف الدليل dir إلى قائمة البحث للتوجيهات ".include".

-J لا تحذر بشأن تجاوز الإشارة.

-K أصدر تحذيرات عند تعديل جداول الفروق لمسافات طويلة.

-L
--keep-locals

احتفظ بالرموز المحلية في جدول الرموز. تبدأ هذه الرموز ببادئات تسمية محلية خاصة بالنظام، وعادةً ما تكون .L لأنظمة ELF أو L للأنظمة التقليدية a.out.

--listing-lhs-width=number

اضبط الحد الأقصى للعرض، بالكلمات، لعمود بيانات الإخراج في قائمة المُجمِّع على number.

--listing-lhs-width2=number

اضبط الحد الأقصى للعرض، بالكلمات، لعمود بيانات الإخراج لخطوط الاستمرار في قائمة المُجمِّع على number.

--listing-rhs-width=number

اضبط الحد الأقصى لعرض سطر مصدر الإدخال، كما هو معروض في القائمة، على number بايت.

--listing-cont-lines=number

اضبط الحد الأقصى لعدد الأسطر المطبوعة في قائمة لكل سطر إدخال على number +

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

يتحكم في كيفية تعامل المُجمِّع مع الأحرف متعددة البايت في الإدخال. الإعداد الافتراضي (والذي يمكن استعادته باستخدام خيار allow) هو السماح بهذه الأحرف دون إصدار أي تحذيرات. سيؤدي استخدام الخيار warn إلى قيام المُجمِّع بإصدار رسالة تحذير في كل مرة يتم فيها مواجهة حرف متعدد البايت. سيؤدي استخدام الخيار warn-sym-only إلى إصدار تحذير فقط عند تعريف رمز باسم يحتوي على أحرف متعددة البايت. (لن يتم إصدار تحذير للإشارات إلى الرموز غير المعرفة).


--no-pad-sections

يمنع برنامج التجميع من إضافة حشوة إلى نهايات أقسام الإخراج لتتناسب مع محاذاة هذا القسم. افتراضيًا، تتم إضافة الحشوة إلى الأقسام، ولكن هذا قد يؤدي إلى إهدار المساحة التي قد تكون مطلوبة على الأنظمة التي لديها قيود على الذاكرة.

-o objfile

يحدد اسم ملف الكائن الناتج من التجميع على أنه objfile.

-R

يدمج قسم البيانات في قسم التعليمات البرمجية.

--reduce-memory-overheads

تُجاهل. يتم دعمها من أجل التوافق مع الأدوات التي تمرر نفس الخيار إلى كل من برنامج التجميع والمربط.

--scfi=experimental

يتحكم هذا الخيار فيما إذا كان يجب على برنامج التجميع توليد معلومات وقت التشغيل (CFI) للإدخال المكتوب يدويًا. إذا كان الإدخال يحتوي بالفعل على بعض توجيهات CFI القابلة للتوليد، فإن برنامج التجميع يتجاهلها ويصدر تحذيرًا. لاحظ أن "--scfi=experimental" لا يُقصد استخدامه للتعليمات البرمجية التي تم إنشاؤها بواسطة المترجم، بما في ذلك التجميع المضمن. هذا الدعم التجريبي قيد التطوير. يتم دعم نظام التشغيل System V AMD64 ABI فقط.

يجب أن يبدأ كل دالة إدخال في التجميع بتوجيه ".type"، ويجب أن يتم إغلاقه بشكل مثالي باستخدام توجيه ".size". عند استخدام SCFI، يؤدي كل توجيه ".type" إلى مطالبة برنامج التجميع ببدء إدخال جديد لوصف الدالة (FDE). هذا يعني أنه مع كل توجيه ".type"، يتم إكمال كتلة التعليمات السابقة، إن وجدت، كإدخال FDE منفصل.

--sectname-subst

احترم تسلسلات الاستبدال في أسماء الأقسام.

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

أصدر خطأً أو تحذيرًا لتوجيه ELF ".size" غير صالح.

--statistics

اطبع الحد الأقصى للمساحة (بالبايت) وإجمالي الوقت (بالثواني) المستخدم في التجميع.

--strip-local-absolute

قم بإزالة الرموز المطلقة المحلية من جدول الرموز الصادر.

-v
--verbose

اطبع إصدار برنامج التجميع.

--version
-version

اطبع إصدار برنامج التجميع واخرج.

-W
--no-warn

اقمع رسائل التحذير.

--warn

لا تقمع رسائل التحذير أو تعاملها كأخطاء.

--fatal-warnings

عامل التحذيرات كأخطاء.

-w تجاهل.

-x تجاهل.

-Z قم بإنشاء ملف كائن حتى بعد حدوث أخطاء.

-- | files ...

الإدخال القياسي، أو ملفات المصدر المراد تجميعها.

الخيارات التالية متاحة عندما يكون برنامج التجميع مُهيئًا لوضع 64 بت من بنية ARM (AArch64).

-EB يحدد هذا الخيار أن الإخراج الذي تم إنشاؤه بواسطة برنامج التجميع يجب أن يتم تمييزه على أنه مشفر لمعالج ذي ترتيب بايت كبير.

-EL يحدد هذا الخيار أن الإخراج الذي تم إنشاؤه بواسطة برنامج التجميع يجب أن يتم تمييزه على أنه مشفر لمعالج ذي ترتيب بايت صغير.

-mabi=abi

حدد نظام التشغيل الذي يستخدمه التعليمات البرمجية المصدر. الوسائط المعترف بها هي: "ilp32" و "lp64"، والتي تحدد ملف الكائن الناتج بتنسيق ELF32 و ELF64 على التوالي. الافتراضي هو "lp64".

-mcpu=processor[+extension...]

يحدد هذا الخيار المعالج المستهدف. سيصدر برنامج التجميع رسالة خطأ إذا تم محاولة تجميع تعليمة لن يتم تنفيذها على المعالج المستهدف. يتم التعرف على أسماء المعالجات التالية: "cortex-a34" و "cortex-a35" و "cortex-a53" و "cortex-a55" و "cortex-a57" و "cortex-a65" و "cortex-a65ae" و "cortex-a72" و "cortex-a73" و "cortex-a75" و "cortex-a76" و "cortex-a76ae" و "cortex-a77" و "cortex-a78" و "cortex-a78ae" و "cortex-a78c" و "cortex-a510" و "cortex-a520" و "cortex-a710" و "cortex-a720" و "ares" و "exynos-m1" و "falkor" و "neoverse-n1" و "neoverse-n2" و "neoverse-e1" و "neoverse-v1" و "qdf24xx" و "saphira" و "thunderx" و "vulcan" و "xgene1" و "xgene2" و "cortex-r82" و "cortex-x1" و "cortex-x2" و "cortex-x3" و "cortex-x4". يمكن استخدام الاسم الخاص "all" للسماح لبرنامج التجميع بقبول التعليمات الصالحة لأي معالج مدعوم، بما في ذلك جميع الامتدادات الاختيارية.


بالإضافة إلى مجموعة التعليمات الأساسية، يمكن توجيه برنامج التجميع لقبول، أو تقييد، تعليمات إضافية متنوعة توسع نطاق المعالج.

إذا كانت بعض تطبيقات معالج معين لديها امتداد، فسيتم تمكين تلك الامتدادات تلقائيًا. وبالتالي، لن تضطر عادةً إلى تحديد أي امتدادات إضافية.

-march=architecture[+extension...]

يحدد هذا الخيار بنية الهدف. سيصدر برنامج التجميع رسالة خطأ إذا تم محاولة تجميع تعليمة لن يتم تنفيذها على بنية الهدف. يتم التعرف على أسماء البنى التالية: "armv8-a"، "armv8.1-a"، "armv8.2-a"، "armv8.3-a"، "armv8.4-a"، "armv8.5-a"، "armv8.6-a"، "armv8.7-a"، "armv8.8-a"، "armv8.9-a"، "armv8-r"، "armv9-a"، "armv9.1-a"، "armv9.2-a"، "armv9.3-a"، "armv9.4-a"، و"armv9.5-a".

إذا تم تحديد كل من -mcpu و -march، فسيستخدم برنامج التجميع الإعداد الخاص بـ -mcpu. إذا لم يتم تحديد أي منهما، فسيستخدم برنامج التجميع القيمة الافتراضية -mcpu=all.

يمكن توسيع خيار البنية باستخدام نفس خيارات مجموعة التعليمات المتاحة لخيار -mcpu. على عكس -mcpu، لا يتم تمكين الامتدادات افتراضيًا دائمًا.

-mverbose-error

يقوم هذا الخيار بتمكين رسائل الخطأ المفصلة لـ AArch64 gas. يتم تمكين هذا الخيار افتراضيًا.

-mno-verbose-error

يقوم هذا الخيار بتعطيل رسائل الخطأ المفصلة في AArch64 gas.

-menable-sysreg-checking

يقوم هذا الخيار بتمكين رسائل الخطأ التي يتم إصدارها إذا تم محاولة تجميع الوصول إلى سجل النظام والذي لن يتم تنفيذه على بنية الهدف.

تتوفر الخيارات التالية عند تكوين as لمعالج Alpha.

-mcpu

يحدد هذا الخيار معالج الهدف. إذا تم محاولة تجميع تعليمة لن يتم تنفيذها على معالج الهدف، فقد يقوم برنامج التجميع إما بتوسيع التعليمة كـ macro أو إصدار رسالة خطأ. هذا الخيار مكافئ لـ ".arch" directive.

يتم التعرف على أسماء المعالجات التالية: 21064، "21064a"، 21066، 21068، 21164، "21164a"، "21164pc"، 21264، "21264a"، "21264b"، "ev4"، "ev5"، "lca45"، "ev5"، "ev56"، "pca56"، "ev6"، "ev67"، "ev68". يمكن استخدام الاسم الخاص "all" للسماح لبرنامج التجميع بقبول التعليمات الصالحة لأي معالج Alpha.


من أجل دعم الممارسات الحالية في OSF/1 فيما يتعلق بـ ".arch"، والممارسات الحالية داخل MILO (محمل الإقلاع Linux ARC)، فإن أسماء المعالجات المرقمة (مثل 21064) تمكن تعليمات PALcode الخاصة بالمعالج، بينما لا تفعل أسماء "electro-vlasic" (مثل "ev4") ذلك.

-mdebug
-no-mdebug
يمكّن أو يعطّل إنشاء تغليف ".mdebug" لتوجيهات stabs ووصفات الإجراء. الافتراضي هو تمكين ".mdebug" تلقائيًا عند رؤية أول توجيه stabs.

-relax
يجبر هذا الخيار جميع عمليات إعادة التعيين على وضعها في ملف الكائن، بدلاً من توفير المساحة وحل بعض عمليات إعادة التعيين في وقت التجميع. لاحظ أن هذا الخيار لا يقوم بتعميم جميع العمليات الحسابية للرمز في ملف الكائن، لأنه لا يمكن تمثيل جميع العمليات الحسابية للرمز. ومع ذلك، يمكن أن يكون هذا الخيار مفيدًا في تطبيقات معينة.

-replace
-noreplace
يمكّن أو يعطّل تحسين استدعاءات الإجراءات، سواء في وقت التجميع أو وقت الربط. هذه الخيارات متاحة فقط للأهداف VMS، و "-replace" هو الافتراضي. راجع القسم 4.1 من دليل OpenVMS Linker Utility.

-g
يستخدم هذا الخيار عندما يقوم المترجم بإنشاء معلومات التصحيح. عند استخدام gcc لـ mipstfile لإنشاء معلومات التصحيح لـ ECOFF، يجب تمرير التسميات المحلية إلى ملف الكائن. وإلا، فلن يكون لهذا الخيار أي تأثير.

-Gsize
يتم وضع رمز عام محلي أكبر من الحجم في ".bss"، بينما يتم وضع الرموز الأصغر في ".sbss".

-F
-32addr
يتم تجاهل هذه الخيارات من أجل التوافق مع الإصدارات السابقة.

الخيارات التالية متاحة عندما يتم تكوين as لمعالج ARC.

-mcpu=cpu
يحدد هذا الخيار نوع المعالج الأساسي.

-EB | -EL
حدد إخراجًا بنظام big-endian (-EB) أو little-endian (-EL).

-mcode-density
تمكين تعليمات امتداد كثافة التعليمات البرمجية.

الخيارات التالية متاحة عندما يتم تكوين as لعائلة معالجات ARM.

-mcpu=processor[+extension...]
حدد نوع معالج ARM المستهدف.

-march=architecture[+extension...]
حدد نوع بنية ARM المستخدمة بواسطة الهدف.

-mfpu=floating-point-format
حدد بنية وحدة الفاصلة العائمة المستهدفة.

-mfloat-abi=abi
حدد واجهة برمجة تطبيقات الفاصلة العائمة المستخدمة.

-mthumb
تمكين فك ترميز تعليمات Thumb فقط.

-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
حدد اتفاقية استدعاء الإجراء المستخدمة.

-EB | -EL
حدد إخراجًا بنظام big-endian (-EB) أو little-endian (-EL).

-mthumb-interwork
حدد أن التعليمات البرمجية قد تم إنشاؤها مع وضع التفاعل بين تعليمات Thumb و ARM في الاعتبار.

-mccs
يقوم بتشغيل وضع توافق تركيب تجميع CodeComposer Studio.

-k
حدد أن التعليمات البرمجية الخاصة بـ PIC قد تم إنشاؤها.

الخيارات التالية متاحة عندما يتم تكوين as لعائلة معالجات Blackfin.

-mcpu=processor[-sirevision]
يحدد هذا الخيار المعالج المستهدف. الجزء الاختياري sirevision غير مستخدم في المجمّع. إنه هنا بحيث يمكن لـ GCC تمرير خيار "-mcpu=" الخاص به بسهولة. سيقوم المجمّع بإصدار رسالة خطأ إذا تمت محاولة تجميع تعليمة لن يتم تنفيذها على المعالج المستهدف. يتم التعرف على أسماء المعالجات التالية: "bf504"، "bf506"، "bf512"، "bf514"، "bf516"، "bf518"، "bf522"، "bf523"، "bf524"، "bf525"، "bf526"، "bf527"، "bf531"، "bf532"، "bf533"، "bf534"، "bf535" (لم يتم تنفيذه بعد)، "bf536"، "bf537"، "bf538"، "bf539"، "bf542"، "bf542m"، "bf544"، "bf544m"، "bf547"، "bf547m"، "bf548"، "bf548m"، "bf549"، "bf549m"، "bf561"، و "bf592".

-mfdpic
قم بتجميع الكود لـ FDPIC ABI.

-mno-fdpic
-mnopic
قم بتعطيل `-mfdpic`.

تتوفر الخيارات التالية عند تكوين `as` لعائلة معالجات Linux kernel BPF.

@chapter ميزات تعتمد على BPF

خيارات BPF

-EB يحدد هذا الخيار أن يقوم المُجمِّع بإخراج eBPF بنظام البايت الكبير.

-EL يحدد هذا الخيار أن يقوم المُجمِّع بإخراج eBPF بنظام البايت الصغير.

-mdialect=dialect
يحدد هذا الخيار لهجة لغة التجميع التي سيتم التعرف عليها أثناء التجميع. يدعم المُجمِّع الوضعين العادي و pseudoc.

-misa-spec=spec
يحدد هذا الخيار إصدار مجموعة تعليمات BPF المراد استخدامها عند التجميع. إصدارات BPF ISA المدعومة هي v1، و v2، و v3، و v4.

يمكن تحديد القيمة `xbpf` للتعرف على التعليمات الإضافية المستخدمة بواسطة GCC لأغراض الاختبار. ولكن كن حذرًا، فهذا ليس BPF صالحًا.

-mno-relax
يخبر هذا الخيار المُجمِّع بعدم تخفيف التعليمات.

لاحظ أنه إذا لم يتم تحديد أي خيار لترتيب البايت في سطر الأوامر، فسيتم استخدام ترتيب البايت للمضيف.
راجع صفحات المعلومات للحصول على وثائق حول الخيارات الخاصة بـ CRIS.

تتوفر الخيارات التالية عند تكوين `as` لعائلة معالجات C-SKY.

-march=archname
قم بتجميع الكود لبنية `archname`. يسرد خيار `--help` القيم الصالحة لـ `archname`.

-mcpu=cpuname
قم بتجميع الكود لبنية `cpuname`. يسرد خيار `--help` القيم الصالحة لـ `cpuname`.

-EL
-mlittle-endian
قم بإنشاء إخراج بنظام البايت الصغير.

-EB
-mbig-endian
قم بإنشاء إخراج بنظام البايت الكبير.

-fpic
-pic
قم بإنشاء كود مستقل عن الموضع.

-mljump
-mno-ljump
قم بتمكين/تعطيل تحويل تعليمات الفرع القصير "jbf" و "jbt" و "jbr" إلى "jmpi". هذا الخيار مخصص لمعالجات V2 فقط. يتم تجاهله على أهداف CK801 و CK802، التي لا تدعم تعليمات "jmpi"، ويتم تمكينه افتراضيًا للمعالجات الأخرى.

-mbranch-stub
-mno-branch-stub
قم بتمرير عمليات نقل "R_CKCORE_PCREL_IMM26BY2" لتعليمات "bsr" إلى الرابط.

هذا الخيار متاح فقط لأهداف C-SKY V2 ELF المجردة، حيث يتم تمكينه افتراضيًا. لا يمكن استخدامه في الكود الذي سيتم ربطه ديناميكيًا بمكتبات مشتركة.

-force2bsr
-mforce2bsr
-no-force2bsr
-mno-force2bsr
قم بتمكين/تعطيل تحويل تعليمات "jbsr" إلى "bsr". هذا الخيار ممكن دائمًا (ويتم تجاهل `-mno-force2bsr`) لأهداف CK801/CK802. كما أنه ممكن دائمًا عند تفعيل `-mbranch-stub`.

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

تمكين/تعطيل تحويل تعليمات "jsri" إلى "bsr". هذا الخيار ممكن افتراضيًا.

-mnolrw
-mno-lrw

تمكين/تعطيل تحويل تعليمات "lrw" إلى زوج من التعليمات "movih"/"ori".

-melrw
-mno-elrw

تمكين/تعطيل تعليمات "lrw" الموسعة. هذا الخيار ممكن افتراضيًا لمعالجات سلسلة CK800.

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

تمكين/تعطيل وضع مجمعات الأدبيات بعد كل دالة.

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

تمكين/تعطيل وضع مجمعات الأدبيات بعد الفروع غير المشروطة. هذا الخيار ممكن افتراضيًا.

-mistack
-mno-istack

تمكين/تعطيل تعليمات مكدس المقاطعات. هذا الخيار ممكن افتراضيًا لمعالجات CK801 و CK802 و CK802.

تتيح الخيارات التالية بشكل صريح بعض التعليمات الاختيارية. يتم أيضًا تمكين هذه الميزات بشكل ضمني باستخدام "-mcpu=" لتحديد معالج يدعمها.

-mhard-float

تمكين تعليمات النقطة العائمة الصلبة.

-mmp

تمكين تعليمات المعالجة المتعددة.

-mcp

تمكين تعليمات المعالج المرافق.

-mcache

تمكين تعليمات جلب الذاكرة المخبأة.

-msecurity

تمكين تعليمات الأمان الخاصة بـ C-SKY.

-mtrust

تمكين تعليمات الثقة الخاصة بـ C-SKY.

-mdsp

تمكين تعليمات DSP.

-medsp

تمكين تعليمات DSP المحسنة.

-mvdsp

تمكين تعليمات DSP المتجهة.

الخيارات التالية متاحة عند تكوين as لمعالج Epiphany.

-mepiphany

يحدد أنه يُسمح بكل من التعليمات ذات 32 بت و 16 بت. هذا هو السلوك الافتراضي.

-mepiphany16

يقتصر على التعليمات ذات 16 بت فقط.

الخيارات التالية متاحة عند تكوين as لمعالج H8/300. @chapter ميزات H8/300

الخيارات

يحتوي إصدار Renesas H8/300 من "as" على خيار واحد خاص بالجهاز:

-h-tick-hex

يدعم ثوابت hex بنمط '00' بالإضافة إلى نمط 0x00.

-mach=name

يحدد نوع جهاز H8300. يتم التعرف على أسماء الأجهزة التالية: "h8300h" و "h8300hn" و "h8300s" و "h8300sn" و "h8300sx" و "h8300sxn".

الخيارات التالية متاحة عند تكوين as لمعالج i386.

--32 | --x32 | --64

حدد حجم الكلمة، إما 32 بت أو 64 بت. --32 يعني بنية Intel i386، بينما --x32 و --64 يعنيان بنية AMD x86-64 مع حجم كلمة 32 بت أو 64 بت على التوالي.

هذه الخيارات متاحة فقط مع تنسيق ملف كائن ELF، وتتطلب تضمين دعم BFD الضروري (على نظام أساسي 32 بت، يجب إضافة --enable-64-bit-bfd إلى configure لتمكين استخدام 64 بت واستخدام x86-64 كمنصة مستهدفة).

-n افتراضيًا، يقوم x86 GAS باستبدال تعليمات nop متعددة تستخدم للمحاذاة داخل أقسام التعليمات البرمجية بتعليمات nop متعددة البايت مثل leal 0(%esi,1),%esi. يعطل هذا الخيار التحسين إذا تم تحديد byte nop واحد (0x90) بشكل صريح كـ fill byte للمحاذاة.

--divide

في الأنظمة المستندة إلى SVR4، يتم التعامل مع الحرف "/" كحرف تعليق، مما يعني أنه لا يمكن استخدامه في التعبيرات. يقوم خيار "--divide" بتحويل "/" إلى حرف عادي. هذا لا يعطل "/" في بداية سطر يبدأ تعليقًا، أو يؤثر على استخدام "#" لبدء تعليق.

-march=CPU[+EXTENSION...]
يحدد هذا الخيار المعالج المستهدف. سيصدر المُجمِّع رسالة خطأ إذا تمت محاولة تجميع تعليمة لن تعمل على المعالج المستهدف. يتم التعرف على أسماء المعالجات التالية: "i8086"، "i186"، "i286"، "i386"، "i486"، "i586"، "i686"، "pentium"، "pentiumpro"، "pentiumii"، "pentiumiii"، "pentium4"، "prescott"، "nocona"، "core"، "core2"، "corei7"، "iamcu"، "k6"، "k6_2"، "athlon"، "opteron"، "k8"، "amdfam10"، "bdver1"، "bdver2"، "bdver3"، "bdver4"، "znver1"، "znver2"، "znver3"، "znver4"، "znver5"، "znver6"، "btver1"، "btver2"، "generic32" و "generic64".

بالإضافة إلى مجموعة التعليمات الأساسية، يمكن للمجمع أن يُطلب منه قبول العديد من ملحقات التعليمات. على سبيل المثال، "-march=i686+sse4+vmx" يضيف sse4 و vmx إلى i686. الملحقات التالية مدعومة حاليًا: 8087، 287، 387، 687، "cmov"، "fxsr"، "mmx"، "sse"، "sse2"، "sse3"، "sse4a"، "ssse3"، "sse4.1"، "sse4.2"، "sse4"، "avx"، "avx2"، "lahf_sahf"، "monitor"، "adx"، "rdseed"، "prfchw"، "smap"، "mpx"، "sha"، "rdpid"، "ptwrite"، "cet"، "gfni"، "vaes"، "vpclmulqdq"، "prefetchwt1"، "clflushopt"، "se1"، "clwb"، "movdiri"، "movdir64b"، "enqcmd"، "serialize"، "tsxldtrk"، "kl"، "widekl"، "hreset"، "avx512f"، "avx512cd"، "avx512er"، "avx512pf"، "avx512vl"، "avx512bw"، "avx512dq"، "avx512ifma"، "avx512vbmi"، "avx512_4fmaps"، "avx512_4vnniw"، "avx512_vpopcntdq"، "avx512_vbmi2"، "avx512_vnni"، "avx512_bitalg"، "avx512_vp2intersect"، "tdx"، "avx512_bf16"، "avx_vnni"، "avx512_fp16"، "avx512_bmm"، "prefetchi"، "avx_ifma"، "avx_vnni_int8"، "cmpccxadd"، "wrmsrns"، "msrlist"، "avx_ne_convert"، "rao_int"، "fred"، "lkgs"، "avx_vnni_int16"، "sha512"، "sm3"، "sm4"، "pbndkb"، "avx10.1"، "avx10.1/512"، "avx10.1/256"، "avx10.1/128"، "user_msr"، "msr_imm"، "apx_f"، "apx_nci"، "apx_ndd"، "apx_nf"، "apx_nci_ndd_nf"، "avx10.2"، "avx10.2/512"، "avx10.2/256"، "avx10.2/128"، "movrs"، "amx_int8"، "amx_bf16"، "amx_fp16"، "amx_complex"، "amx_transpose"، "amx_tf32"، "amx_fp8"، "amx_movrs"، "amx_avx512"، "amx_tile"، "vmx"، "vmfunc"، "smx"، "xsave"، "xsaveopt"، "xsavec"، "xsaves"، "aes"، "pclmul"، "fsgsbase"، "rdrnd"، "f16c"، "bmi2"، "fma"، "movbe"، "ept"، "lzcnt"، "popcnt"، "hle"، "rtm"، "tsx"، "invpcid"، "clflush"، "mwaitx"، "clzero"، "wbnoinvd"، "pconfig"، "waitpkg"، "uintr"، "cldemote"، "rdpru"، "mcommit"، "sev_es"، "lwp"، "fma4"، "xop"، "cx16"، "syscall"، "rdtscp"، "3dnow"، "3dnowa"، "sse4a"، "sse5"، "snp"، "invlpgb"، "tlbsync"، "rmpquery"، "rmpread"، "svme"، "gmism2"، "gmiccs"، "padlockrng2"، "padlockphe2"، "padlockxmodx" و "padlock". لاحظ أنه يمكن إضافة البادئة "no" إلى هذه ملحقات التعليمات لإلغاء الوظيفة المقابلة (وأي وظائف تابعة لها). لاحظ أيضًا أن اللاحقات المسموح بها في "-march=avx10.<N>" تفرض قيودًا على طول المتجه، أي أنه على الرغم من أن هذه خيارات "تمكين" بشكل عام، فإن استخدام هذه اللاحقات سيؤدي إلى تعطيل جميع التعليمات ذات معاملات المتجه أو سجل القناع الأوسع.

عند استخدام التوجيه ".arch" مع الخيار "-march"، فإن التوجيه ".arch" له الأسبقية.

-mtune=CPU
يحدد هذا الخيار المعالج الذي سيتم تحسين الكود له. عند استخدامه بالتزامن مع الخيار "-march"، سيتم إنشاء تعليمات المعالج المحدد بواسطة الخيار "-march" فقط.

تتشابه القيم الصالحة لـ CPU مع قائمة المعالجات الخاصة بالخيار "-march=CPU".

-moperand-check=none
-moperand-check=warning
-moperand-check=error
تتحكم هذه الخيارات فيما إذا كان يجب على المجمع التحقق من بعض معاملات التعليمات أو مجموعات المعاملات. مثال على التعليمات التي لا يمكن استنتاج حجم المعامل منها من خلال معاملات التعليمات، ولم يتم تحديدها أيضًا عن طريق لاحقة التعليمات. سيجعل الخيار "-moperand-check=none" أن يقوم المجمع بإجراء هذه الفحوصات. سيجعل الخيار "-moperand-check=warning" أن يصدر المجمع تحذيرًا عندما تفشل الفحوصات المعنية، وهو الافتراضي. سيجعل الخيار "-moperand-check=error" أن يصدر المجمع خطأً عندما تفشل الفحوصات المعنية.

-msse2avx
يحدد هذا الخيار أن يقوم المجمع بترميز تعليمات SSE مع بادئة VEX، مما يتطلب توفر AVX. سيتم ترميز تعليمات SSE التي تستخدم مسجلات GPR الموسعة باستخدام بادئة EVEX، مما يتطلب توفر AVX512 أو AVX10.

-muse-unaligned-vector-move
يحدد هذا الخيار أن يقوم المجمع بترميز نقل المتجهات المحاذية كنقل متجهات غير محاذية.

-msse-check=none
-msse-check=warning
-msse-check=error
تتحكم هذه الخيارات فيما إذا كان يجب على المجمع التحقق من تعليمات SSE. سيجعل الخيار "-msse-check=none" أن لا يقوم المجمع بالتحقق من تعليمات SSE، وهو الافتراضي. سيجعل الخيار "-msse-check=warning" أن يصدر المجمع تحذيرًا لأي تعليمات SSE. سيجعل الخيار "-msse-check=error" أن يصدر المجمع خطأً لأي تعليمات SSE.

-mavxscalar=128
-mavxscalar=256
تتحكم هذه الخيارات في كيفية ترميز التعليمات القياسية AVX بواسطة المجمع. سيقوم الخيار "-mavxscalar=128" بترميز التعليمات القياسية AVX بطول متجه 128 بت، وهو الافتراضي. سيقوم الخيار "-mavxscalar=256" بترميز التعليمات القياسية AVX بطول متجه 256 بت.

تحذير: لا تستخدم هذا في الكود الإنتاجي - بسبب أخطاء وحدة المعالجة المركزية، قد لا يعمل الكود الناتج على بعض الطرازات.

-mvexwig=0
-mvexwig=1
تتحكم هذه الخيارات في كيفية ترميز تعليمات VEX.W-ignored (WIG) بواسطة المجمع. سيقوم الخيار "-mvexwig=0" بترميز تعليمات VEX.W-ignored بـ vex.w = 0، وهو الافتراضي. سيقوم الخيار "-mvexwig=1" بترميز تعليمات VEX.W-ignored بـ vex.w = 1.

تحذير: لا تستخدم هذا في التعليمات البرمجية المخصصة للإنتاج - بسبب أخطاء وحدة المعالجة المركزية، قد لا تعمل التعليمات البرمجية الناتجة على بعض الطرازات.

-mevexlig=128
-mevexlig=256
-mevexlig=512
تتحكم هذه الخيارات في كيفية قيام المجمّع بترميز تعليمات EVEX ذات الطول غير المهم (LIG).
-mevexlig=128 ستقوم بترميز تعليمات EVEX ذات الطول غير المهم (LIG) بطول متجه 128 بت، وهو الإعداد الافتراضي. -mevexlig=256 و -mevexlig=512 ستقوم بترميز تعليمات EVEX ذات الطول غير المهم (LIG) بأطوال متجهات 256 بت و 512 بت على التوالي.

-mevexwig=0
-mevexwig=1
تتحكم هذه الخيارات في كيفية قيام المجمّع بترميز تعليمات EVEX ذات البت w غير المهم (WIG).
-mevexwig=0 ستقوم بترميز تعليمات EVEX ذات البت w غير المهم (WIG) بقيمة `evex.w` = 0، وهو الإعداد الافتراضي.
-mevexwig=1 ستقوم بترميز تعليمات EVEX ذات البت w غير المهم (WIG) بقيمة `evex.w` = 1.

-mmnemonic=att
-mmnemonic=intel
يحدد هذا الخيار التسمية التوضيحية للتعليمات المستخدمة لمطابقة التعليمات. ستكون التوجيهات ".att_mnemonic" و ".intel_mnemonic" لها الأسبقية.

-msyntax=att
-msyntax=intel
يحدد هذا الخيار بناء الجملة للتعليمات عند معالجة التعليمات. ستكون التوجيهات ".att_syntax" و ".intel_syntax" لها الأسبقية.

-mnaked-reg
يحدد هذا الخيار أنه لا يلزم أن يكون للسجلات بادئة "%". ستكون التوجيهات ".att_syntax" و ".intel_syntax" لها الأسبقية.

-madd-bnd-prefix
يجبر هذا الخيار المجمّع على إضافة بادئة BND إلى جميع الفروع، حتى لو لم يتم تحديد هذه البادئة بشكل صريح في التعليمات البرمجية المصدر.

-mno-shared
في هدف ELF، يقوم المجمّع عادةً بإزالة عمليات إعادة التوجيه غير PLT ضد الأهداف العامة غير الضعيفة المعرفة ذات الرؤية الافتراضية. يخبر خيار -mshared المجمّع بإنشاء رمز يمكن أن يكون في مكتبة مشتركة، حيث يمكن تجاوز جميع الأهداف العامة غير الضعيفة ذات الرؤية الافتراضية. ستكون التعليمات البرمجية الناتجة أكبر قليلاً. يؤثر هذا الخيار فقط على معالجة تعليمات الفرع.

-mbig-obj
في هدف PE/COFF، يجبر هذا الخيار على استخدام تنسيق ملف كائن كبير، مما يسمح بأكثر من 32768 قسمًا.

-momit-lock-prefix=no
-momit-lock-prefix=yes
تتحكم هذه الخيارات في كيفية قيام المجمّع بترميز بادئة القفل. هذا الخيار مخصص كحل بديل للمعالجات التي تفشل في اختبار بادئة القفل. لا يمكن استخدام هذا الخيار بأمان إلا مع أجهزة الكمبيوتر ذات النواة الواحدة والخيط الواحد. -momit-lock-prefix=yes سيزيل جميع بادئات القفل. -momit-lock-prefix=no ستقوم بترميز بادئة القفل كالمعتاد، وهو الإعداد الافتراضي.

-mfence-as-lock-add=no
-mfence-as-lock-add=yes
تتحكم هذه الخيارات في كيفية قيام المجمّع بترميز lfence و mfence و sfence.
-mfence-as-lock-add=yes ستقوم بترميز lfence و mfence و sfence كـ lock addl $0x0, (%rsp) في وضع 64 بت و lock addl $0x0, (%esp) في وضع 32 بت. -mfence-as-lock-add=no ستقوم بترميز lfence و mfence و sfence كالمعتاد، وهو الإعداد الافتراضي.

-mrelax-relocations=no
-mrelax-relocations=yes
تتحكم هاتان الخياران فيما إذا كان يجب على المجمع إنشاء عمليات إعادة تحديد موضع "مُرخّية"، مثل `R_386_GOT32X` في وضع 32 بت، أو `R_X86_64_GOTPCRELX` و`R_X86_64_REX_GOTPCRELX` في وضع 64 بت. سيؤدي `-mrelax-relocations=yes` إلى إنشاء عمليات إعادة تحديد موضع مُرخّية. بينما سيؤدي `-mrelax-relocations=no` إلى عدم إنشاء عمليات إعادة تحديد موضع مُرخّية.

-mtls-check=no
-mtls-check=yes
تتحكم هذه الخيارات فيما إذا كان يجب على المجمع التحقق من عمليات إعادة تحديد موضع TLS. سيؤدي `-mtls-check=yes` إلى التحقق من عمليات إعادة تحديد موضع TLS. بينما سيؤدي `-mtls-check=no` إلى عدم التحقق من عمليات إعادة تحديد موضع TLS. يمكن التحكم في القيمة الافتراضية بواسطة خيار التكوين `--enable-x86-tls-check`.

-malign-branch-boundary=NUM
يتحكم هذا الخيار في كيفية محاذاة المجمع للفروع مع بادئات المقاطع أو NOP. يجب أن تكون NUM قوة للرقم 2. يجب أن تكون 0 أو أكبر من أو تساوي 16. سيتم محاذاة الفروع ضمن حدود NUM بايت. يؤدي `-malign-branch-boundary=0`، وهو الإعداد الافتراضي، إلى عدم محاذاة الفروع.

-malign-branch=TYPE[+TYPE...]
يحدد هذا الخيار أنواع الفروع التي سيتم محاذاتها. TYPE هي مجموعة من `jcc`، والتي تحاذي القفزات الشرطية، و`fused`، والتي تحاذي القفزات الشرطية المدمجة، و`jmp`، والتي تحاذي القفزات غير الشرطية، و`call` والتي تحاذي الاستدعاءات، و`ret` والتي تحاذي عمليات الإرجاع، و`indirect` والتي تحاذي القفزات والاستدعاءات غير المباشرة. الإعداد الافتراضي هو `-malign-branch=jcc+fused+jmp`.

-malign-branch-prefix-size=NUM
يحدد هذا الخيار الحد الأقصى لعدد البادئات في تعليمة لمحاذاة الفروع. يجب أن تكون NUM بين 0 و 5. القيمة الافتراضية لـ NUM هي 5.

-mlfence-within-32B-boundaries
يحاذي هذا الخيار القفزات الشرطية والقفزات الشرطية المدمجة والقفزات غير الشرطية ضمن حدود 32 بايت مع ما يصل إلى 5 بادئات مقطع في تعليمة. وهو يعادل `-malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5`. لا يحاذي الإعداد الافتراضي الفروع.

-mlfence-after-load=no
-mlfence-after-load=yes
تتحكم هذه الخيارات فيما إذا كان يجب على المجمع إنشاء `lfence` بعد تعليمات التحميل. سيؤدي `-mlfence-after-load=yes` إلى إنشاء `lfence`. بينما سيؤدي `-mlfence-after-load=no` إلى عدم إنشاء `lfence`، وهو الإعداد الافتراضي.

-mlfence-before-indirect-branch=none
-mlfence-before-indirect-branch=all
-mlfence-before-indirect-branch=register
-mlfence-before-indirect-branch=memory
تتحكم هذه الخيارات فيما إذا كان يجب على المجمع إنشاء `lfence` قبل الفروع غير المباشرة القريبة. سيؤدي `-mlfence-before-indirect-branch=all` إلى إنشاء `lfence` قبل الفروع غير المباشرة القريبة عبر المسجل وإصدار تحذير قبل الفروع غير المباشرة القريبة عبر الذاكرة. كما يضبط ضمنيًا `-mlfence-before-ret=shl` عندما لا توجد `-mlfence-before-ret` صريحة. سيؤدي `-mlfence-before-indirect-branch=register` إلى إنشاء `lfence` قبل الفروع غير المباشرة القريبة عبر المسجل. سيؤدي `-mlfence-before-indirect-branch=memory` إلى إصدار تحذير قبل الفروع غير المباشرة القريبة عبر الذاكرة. سيؤدي `-mlfence-before-indirect-branch=none` إلى عدم إنشاء `lfence` ولا إصدار تحذير، وهو الإعداد الافتراضي. لاحظ أن `lfence` لن يتم إنشاؤها قبل الفروع غير المباشرة القريبة عبر المسجل مع `-mlfence-after-load=yes` لأن `lfence` سيتم إنشاؤها بعد تحميل تعليمة المسجل الهدف.

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

هذه الخيارات تتحكم فيما إذا كان المجمع يجب أن يولد تعليمة lfence قبل ret. -mlfence-before-ret=or سيولد تعليمة or مع lfence. -mlfence-before-ret=shl/yes سيولد تعليمة shl مع lfence. -mlfence-before-ret=not سيولد تعليمة not مع lfence. -mlfence-before-ret=none لن يولد تعليمة lfence، وهو الإعداد الافتراضي.

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

هذه الخيارات تتحكم فيما إذا كان المجمع يجب أن يولد تعليمة GNU_PROPERTY_X86_ISA_1_USED و GNU_PROPERTY_X86_FEATURE_2_USED GNU property notes. يمكن التحكم في الإعداد الافتراضي عن طريق خيار --enable-x86-used-note في عملية التكوين.

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

هذه الخيارات تتحكم في كيفية قيام المجمع بترميز تعليمات EVEX التي تستخدم SAE فقط. -mevexrcig=rne سيقوم بترميز بتات RC لتعليمة EVEX بالقيمة 00، وهو الإعداد الافتراضي. -mevexrcig=rd، و -mevexrcig=ru و -mevexrcig=rz سيقومون بترميز تعليمات EVEX التي تستخدم SAE فقط ببتات RC بالقيم 01، و 10، و 11 على التوالي.

-mamd64
-mintel64

يحدد هذا الخيار أن المجمع يجب أن يقبل فقط مجموعة تعليمات AMD64 أو Intel64 في وضع 64 بت. الإعداد الافتراضي هو قبول مجموعات تعليمات Intel64 و AMD64 الشائعة.

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

يقوم بتحسين ترميز التعليمات باستخدام حجم تعليمات أصغر. -O و -O1 يقومون بترميز تعليمات تحميل السجلات 64 بت مع قيم فورية 64 بت كتعليمات تحميل سجلات 32 بت مع قيم فورية 31 بت أو 32 بت، ويقومون بترميز تعليمات مسح السجلات 64 بت كتعليمات مسح سجلات 32 بت، ويقومون بترميز تعليمات مسح سجلات المتجهات VEX/EVEX 256 بت/512 بت كتعليمات مسح سجلات المتجهات VEX 128 بت، ويقومون بترميز تعليمات تحميل/تخزين سجلات المتجهات VEX/EVEX 128 بت/256 بت كتعليمات تحميل/تخزين سجلات المتجهات VEX، ويقومون بترميز تعليمات منطقية معبأة للمتجهات VEX/EVEX 128 بت/256 بت كتعليمات منطقية معبأة للمتجهات VEX 128 بت/256 بت.

-O2 يتضمن تحسينات -O1 بالإضافة إلى ترميز تعليمات مسح سجلات المتجهات EVEX 256 بت/512 بت كتعليمات
مسح سجلات المتجهات EVEX 128 بت. في وضع 64 بت، سيتم أيضًا تبديل المعاملات المصدر للتعليمات المشفرة بـ VEX
والتي تحتوي على معاملات مصدر تبادلية إذا كان ذلك يسمح باستخدام نموذج VEX ذي البادئة المكونة من 2 بايت بدلاً
من النموذج المكون من 3 بايت. سيتم أيضًا تغيير بعض أشكال AND وكذلك OR التي تحتوي على نفس المعامل
(سجل) المحدد مرتين إلى TEST.

-Os يتضمن تحسين -O2 بالإضافة إلى ترميز اختبارات المسجلات ذات 16 بت و 32 بت و 64 بت مع الإشارة الفورية كاختبار مسجل ذي 8 بت مع إشارة فورية. يقوم -O0 بإيقاف هذا التحسين.

تتوفر الخيارات التالية عند تكوين برنامج التجميع (as) لسلسلة Ubicom IP2K.

-mip2022ext

يحدد أنه يُسمح باستخدام تعليمات IP2022 الموسعة.

-mip2022

يستعيد السلوك الافتراضي، الذي يقتصر على التعليمات الأساسية فقط من IP2022.

تتوفر الخيارات التالية عند تكوين برنامج التجميع (as) لمعالجات Renesas M32C و M16C.

-m32c

تجميع تعليمات M32C.

-m16c

تجميع تعليمات M16C (افتراضي).

-relax

تمكين دعم الاسترخاء في وقت الربط.

-h-tick-hex

دعم الثوابت السداسية العشرية بنمط '00' بالإضافة إلى نمط 0x00.

تتوفر الخيارات التالية عند تكوين برنامج التجميع (as) لسلسلة Renesas M32R (المعروفة سابقًا باسم Mitsubishi M32R).

--m32rx

حدد المعالج في عائلة M32R الذي هو الهدف. بشكل افتراضي، يكون الهدف هو M32R، ولكن هذا الخيار يغيره إلى M32RX.

--warn-explicit-parallel-conflicts أو --Wp

إنشاء رسائل تحذير عند مواجهة هياكل متوازية مشكوك فيها.

--no-warn-explicit-parallel-conflicts أو --Wnp

عدم إنشاء رسائل تحذير عند مواجهة هياكل متوازية مشكوك فيها.

تتوفر الخيارات التالية عند تكوين برنامج التجميع (as) لسلسلة Motorola 68000.

-l تقصير الإشارات إلى الرموز غير المعرفة إلى كلمة واحدة بدلاً من كلمتين.

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

حدد المعالج في عائلة 68000 الذي هو الهدف. بشكل افتراضي، يكون الهدف هو 68020، ولكن يمكن تغييره في وقت التكوين.

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

يحتوي الجهاز المستهدف (أو لا يحتوي) على معالج مساعد للنقطة العائمة. بشكل افتراضي، يتم افتراض وجود معالج مساعد للنقطة العائمة لمعالجات 68020 و 68030 و cpu32. على الرغم من أن 68000 الأساسي غير متوافق مع 68881، إلا أنه يمكن تحديد تركيبة من الاثنين، حيث من الممكن محاكاة تعليمات المعالج المساعد باستخدام المعالج الرئيسي.

-m68851 | -mno-68851

يحتوي الجهاز المستهدف (أو لا يحتوي) على معالج مساعد لإدارة الذاكرة. بشكل افتراضي، يتم افتراض وجود وحدة إدارة الذاكرة لمعالجات 68020 وما فوق.

للحصول على تفاصيل حول خيارات الآلة PDP-11، راجع PDP-11-Options.

-mpic | -mno-pic

إنشاء رمز مستقل عن الموضع (أو تابع للموضع). الافتراضي هو -mpic.

-mall
-mall-extensions

تمكين جميع امتدادات مجموعة التعليمات. هذا هو الافتراضي.

-mno-extensions

تعطيل جميع امتدادات مجموعة التعليمات.

-mextension | -mno-extension

تمكين (أو تعطيل) امتداد مجموعة تعليمات معين.

-mcpu

تمكين امتدادات مجموعة التعليمات التي يدعمها معالج معين، وتعطيل جميع الامتدادات الأخرى.

-mmachine

تمكين امتدادات مجموعة التعليمات التي يدعمها طراز جهاز معين، وتعطيل جميع الامتدادات الأخرى.


تتوفر الخيارات التالية عند تكوين as لمعالج picoJava.

-mb إنشاء إخراج بتنسيق "big endian".

-ml إنشاء إخراج بتنسيق "little endian".

تتوفر الخيارات التالية عند تكوين as لمعالج PRU.

-mlink-relax

افترض أن LD سيقوم بتحسين تعليمات LDI32 عن طريق التحقق من أعلى 16 بتًا من التعبير. إذا كانت جميعها أصفارًا، فسيقوم LD بتقصير تعليمات LDI32 إلى تعليمات LDI واحدة. في مثل هذه الحالة، سيقوم as بإخراج عمليات نقل DIFF للتعبيرات المختلفة.

-mno-link-relax

افترض أن LD لن يقوم بتحسين تعليمات LDI32. ونتيجة لذلك، لن يتم إصدار عمليات نقل DIFF.

-mno-warn-regname-label

لا تحذر إذا كان اسم التسمية يطابق اسم المسجل. عادةً ما يريد مبرمجو التجميع إصدار هذا التحذير. قد ترغب مُجمِّعات C في إيقاف تشغيله.

تتوفر الخيارات التالية عند تكوين as لمعالج MIPS.

-G num

يقوم هذا الخيار بتعيين أكبر حجم للكائن الذي يمكن الرجوع إليه ضمنيًا باستخدام مسجل "gp". يتم قبوله فقط للأهداف التي تستخدم تنسيق ECOFF، مثل جهاز DECstation الذي يعمل بنظام Ultrix. القيمة الافتراضية هي 8.

-EB إنشاء إخراج بتنسيق "big endian".

-EL إنشاء إخراج بتنسيق "little endian".

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

إنشاء التعليمات البرمجية لمجموعة معينة من تعليمات MIPS Architecture. -mips1 هو اسم مستعار لـ -march=r3000، و -mips2 هو اسم مستعار لـ -march=r6000، و -mips3 هو اسم مستعار لـ -march=r4000 و -mips4 هو اسم مستعار لـ -march=r8000. -mips5، و -mips32، و -mips32r2، و -mips32r3، و -mips32r5، و -mips32r6، و -mips64، و -mips64r2، و -mips64r3، و -mips64r5، و -mips64r6 تتوافق مع معالجات MIPS V، و MIPS32، و MIPS32 Release 2، و MIPS32 Release 3، و MIPS32 Release 5، و MIPS32 Release 6، و MIPS64، و MIPS64 Release 2، و MIPS64 Release 3، و MIPS64 Release 5، و MIPS64 Release 6 ISA على التوالي.

-march=cpu

إنشاء التعليمات البرمجية لوحدة معالجة مركزية MIPS معينة.

-mtune=cpu

قم بجدولة التعليمات وتعديلها لوحدة معالجة مركزية MIPS معينة.

-mfix7000
-mno-fix7000

تؤدي إلى إدراج تعليمات nop إذا حدثت قراءة المسجل الوجهة لتعليمات mfhi أو mflo في التعليمات التالية.

-mfix-rm7000
-mno-fix-rm7000

تؤدي إلى إدراج تعليمات nop إذا تبعت تعليمات dmult أو dmultu تعليمات تحميل.

-mfix-r5900
-mno-fix-r5900

لا تحاول جدولة التعليمات السابقة في خانة التأخير لتعليمات الفرع التي تم وضعها في نهاية حلقة قصيرة تتكون من ست تعليمات أو أقل، ودائمًا قم بجدولة تعليمات "nop" بدلاً من ذلك. تتسبب الحلقة القصيرة في حدوث خطأ تحت ظروف معينة، مما يجعل الحلقات تنفذ مرة أو مرتين فقط، بسبب خطأ في الأجهزة في شريحة R5900.

-mdebug
-no-mdebug

تؤدي إلى انتقال إخراج تصحيح الأخطاء بنمط stabs إلى قسم ECOFF-style .mdebug بدلاً من أقسام ELF .stabs القياسية.


-mpdr
-mno-pdr
التحكم في إنشاء أقسام ".pdr".

-mgp32
-mfp32
عادةً ما يتم استنتاج أحجام المسجلات من واجهة برمجة التطبيقات (ABI) ومجموعة التعليمات (ISA)، ولكن تفرض هذه العلامات حجمًا معينًا لمجموعة من المسجلات لتكون 32 بت على نطاق واسع. يتحكم -mgp32 في حجم المسجلات ذات الأغراض العامة، ويتحكم -mfp32 في حجم مسجلات الفاصلة العائمة.

-mgp64
-mfp64
عادةً ما يتم استنتاج أحجام المسجلات من واجهة برمجة التطبيقات (ABI) ومجموعة التعليمات (ISA)، ولكن تفرض هذه العلامات حجمًا معينًا لمجموعة من المسجلات لتكون 64 بت على نطاق واسع. يتحكم -mgp64 في حجم المسجلات ذات الأغراض العامة، ويتحكم -mfp64 في حجم مسجلات الفاصلة العائمة.

-mfpxx
عند استخدام هذه العلامة بالاشتراك مع -mabi=32، فإنها تمكن متغيرًا لواجهة برمجة التطبيقات (ABI) والذي سيعمل بشكل صحيح مع مسجلات الفاصلة العائمة التي تكون 32 أو 64 بت.

-modd-spreg
-mno-odd-spreg
تمكين استخدام عمليات الفاصلة العائمة على المسجلات ذات الترتيب الفردي ذات الدقة الواحدة عندما يدعمها مجموعة التعليمات (ISA). يؤدي -mfpxx ضمنيًا إلى -mno-odd-spreg، وإلا فإن الإعداد الافتراضي هو -modd-spreg.

-mips16
-no-mips16
توليد كود لمعالج MIPS 16. هذا يعادل وضع ".module mips16" في بداية ملف التجميع. يؤدي -no-mips16 إلى إيقاف تشغيل هذا الخيار.

-mmips16e2
-mno-mips16e2
تمكين استخدام تعليمات MIPS16e2 في وضع MIPS16. هذا يعادل وضع ".module mips16e2" في بداية ملف التجميع. يؤدي -mno-mips16e2 إلى إيقاف تشغيل هذا الخيار.

-mmicromips
-mno-micromips
توليد كود لمعالج microMIPS. هذا يعادل وضع ".module micromips" في بداية ملف التجميع. يؤدي -mno-micromips إلى إيقاف تشغيل هذا الخيار. هذا يعادل وضع ".module nomicromips" في بداية ملف التجميع.

-msmartmips
-mno-smartmips
تمكين ملحق SmartMIPS لمجموعة تعليمات MIPS32. هذا يعادل وضع ".module smartmips" في بداية ملف التجميع. يؤدي -mno-smartmips إلى إيقاف تشغيل هذا الخيار.

-mips3d
-no-mips3d
توليد كود لتوسيع MIPS-3D الخاص بالتطبيق. يخبر هذا المجمّع بقبول تعليمات MIPS-3D. يؤدي -no-mips3d إلى إيقاف تشغيل هذا الخيار.

-mdmx
-no-mdmx
توليد كود لتوسيع MDMX الخاص بالتطبيق. يخبر هذا المجمّع بقبول تعليمات MDMX. يؤدي -no-mdmx إلى إيقاف تشغيل هذا الخيار.

-mdsp
-mno-dsp
توليد كود لتوسيع DSP Release 1 الخاص بالتطبيق. يخبر هذا المجمّع بقبول تعليمات DSP Release 1. يؤدي -mno-dsp إلى إيقاف تشغيل هذا الخيار.

-mdspr2
-mno-dspr2
توليد كود لتوسيع DSP Release 2 الخاص بالتطبيق. هذا الخيار يعني -mdsp. يخبر هذا المجمّع بقبول تعليمات DSP Release 2. يؤدي -mno-dspr2 إلى إيقاف تشغيل هذا الخيار.

-mdspr3
-mno-dspr3
توليد كود لتوسيع DSP Release 3 الخاص بالتطبيق. هذا الخيار يعني -mdsp و -mdspr2. يخبر هذا المجمّع بقبول تعليمات DSP Release 3. يؤدي -mno-dspr3 إلى إيقاف تشغيل هذا الخيار.

-mmsa
-mno-msa
ينشئ كودًا لبنية MIPS SIMD Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات MSA. يقوم `-mno-msa` بإيقاف تشغيل هذا الخيار.

-mxpa
-mno-xpa
ينشئ كودًا لـ MIPS eXtended Physical Address (XPA) Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات XPA. يقوم `-mno-xpa` بإيقاف تشغيل هذا الخيار.

-mmt
-mno-mt
ينشئ كودًا لـ MT Application Specific Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات MT. يقوم `-mno-mt` بإيقاف تشغيل هذا الخيار.

-mmcu
-mno-mcu
ينشئ كودًا لـ MCU Application Specific Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات MCU. يقوم `-mno-mcu` بإيقاف تشغيل هذا الخيار.

-mcrc
-mno-crc
ينشئ كودًا لـ MIPS cyclic redundancy check (CRC) Application Specific Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات CRC. يقوم `-mno-crc` بإيقاف تشغيل هذا الخيار.

-mginv
-mno-ginv
ينشئ كودًا لـ Global INValidate (GINV) Application Specific Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات GINV. يقوم `-mno-ginv` بإيقاف تشغيل هذا الخيار.

-mloongson-mmi
-mno-loongson-mmi
ينشئ كودًا لـ Loongson MultiMedia extensions Instructions (MMI) Application Specific Extension. يخبر هذا الأمر المُجمِّع بقبول تعليمات MMI. يقوم `-mno-loongson-mmi` بإيقاف تشغيل هذا الخيار.

-mloongson-cam
-mno-loongson-cam
ينشئ كودًا لـ Loongson Content Address Memory (CAM) instructions. يخبر هذا الأمر المُجمِّع بقبول تعليمات Loongson CAM. يقوم `-mno-loongson-cam` بإيقاف تشغيل هذا الخيار.

-mloongson-ext
-mno-loongson-ext
ينشئ كودًا لـ Loongson EXTensions (EXT) instructions. يخبر هذا الأمر المُجمِّع بقبول تعليمات Loongson EXT. يقوم `-mno-loongson-ext` بإيقاف تشغيل هذا الخيار.

-mloongson-ext2
-mno-loongson-ext2
ينشئ كودًا لـ Loongson EXTensions R2 (EXT2) instructions. هذا الخيار يضمن `-mloongson-ext`. يخبر هذا الأمر المُجمِّع بقبول تعليمات Loongson EXT2. يقوم `-mno-loongson-ext2` بإيقاف تشغيل هذا الخيار.

-minsn32
-mno-insn32
يستخدم فقط ترميزات التعليمات 32 بت عند إنشاء كود لمعالج microMIPS. يمنع هذا الخيار استخدام أي تعليمات 16 بت. هذا يعادل وضع ".set insn32" في بداية ملف التجميع. يقوم `-mno-insn32` بإيقاف تشغيل هذا الخيار. بشكل افتراضي، يتم تحديد `-mno-insn32`، مما يسمح باستخدام جميع التعليمات.

--construct-floats
--no-construct-floats
يقوم خيار `--no-construct-floats` بتعطيل إنشاء الثوابت العائمة مزدوجة العرض عن طريق تحميل نصفي القيمة في سجلات النقطة العائمة ذات العرض الواحد التي تشكل السجل ذي العرض المزدوج. بشكل افتراضي، يتم تحديد `--construct-floats`، مما يسمح بإنشاء هذه الثوابت العائمة.

--relax-branch
--no-relax-branch
يقوم خيار `--relax-branch` بتمكين تخفيف الفروع الخارجة عن النطاق. بشكل افتراضي، يتم تحديد `--no-relax-branch`، مما يتسبب في ظهور خطأ لأي فروع خارجة عن النطاق.

-mignore-branch-isa
-mno-ignore-branch-isa
تجاهل فحوصات الفروع المتعلقة بالانتقالات غير الصالحة بين أوضاع ISA. لا توفر دلالات الفروع تبديلًا لوضع ISA، لذلك في معظم الحالات، يجب أن يكون وضع ISA الذي تم ترميز الفرع له هو نفسه وضع ISA لتسمية هدف الفرع. لذلك، يحتوي GAS على فحوصات يتم تنفيذها في تجميع الفروع للتحقق من أن وضعي ISA متطابقان. يقوم `-mignore-branch-isa` بتعطيل هذه الفحوصات. بشكل افتراضي، يتم تحديد `-mno-ignore-branch-isa`، مما يتسبب في ظهور خطأ لأي فرع غير صالح يتطلب الانتقال بين أوضاع ISA.

-mnan=encoding
حدد بين ترميز IEEE 754-2008 (`-mnan=2008`) أو تنسيق ترميز NaN القديم (`-mnan=legacy`). الخيار الأخير هو الافتراضي.

--emulation=name
تم استخدام هذا الخيار سابقًا للتبديل بين إخراج ELF و ECOFF على الأهداف مثل IRIX 5 التي تدعم كلاهما. تمت إزالة دعم MIPS ECOFF في GAS 2.24، لذلك لم يعد للخيار هذا أي غرض كبير. يتم الاحتفاظ به للتوافق مع الإصدارات السابقة.

تتوفر أسماء التكوين التالية: `mipself` و `mipslelf` و `mipsbelf`. اختيار `mipself` ليس له أي تأثير الآن، حيث يكون الإخراج دائمًا ELF. تحدد `mipslelf` و `mipsbelf` إخراج little-endian و big-endian على التوالي، ولكن `-EL` و `-EB` هما الخياران المفضلان بدلاً من ذلك.

-nocpp
يتجاهل as هذا الخيار. يتم قبوله من أجل التوافق مع الأدوات الأصلية.

--trap
--no-trap
--break
--no-break
تحكم في كيفية التعامل مع تجاوز الضرب والقسمة على صفر. `--trap` أو `--no-break` (وهما مرادفان) يتسببان في حدوث استثناء (ولا يعملان إلا لمستوى بنية مجموعة التعليمات 2 أو أعلى)؛ `--break` أو `--no-trap` (مرادفان أيضًا، وهو الإعداد الافتراضي) يتسببان في حدوث استثناء break.

-n
عند استخدام هذا الخيار، سيقوم as بإصدار تحذير في كل مرة يقوم فيها بإنشاء تعليمات nop من ماكرو.

تتوفر الخيارات التالية عند تكوين as لمعالج LoongArch.

-fpic
-fPIC
قم بإنشاء كود مستقل عن الموضع.

-fno-pic
لا تقم بإنشاء كود مستقل عن الموضع (افتراضي).

تتوفر الخيارات التالية عند تكوين as لمعالج Meta.

"-mcpu=metac11"
قم بإنشاء كود لمعالج Meta 1.1.

"-mcpu=metac12"
قم بإنشاء كود لمعالج Meta 1.2.

"-mcpu=metac21"
قم بإنشاء كود لمعالج Meta 2.1.

"-mfpu=metac21"
اسمح للكود باستخدام أجهزة FPU لمعالج Meta 2.1.

راجع صفحات المعلومات للحصول على وثائق حول الخيارات الخاصة بـ MMIX.

تتوفر الخيارات التالية عند تكوين as لمعالج NDS32.

"-O1"
تحسين الأداء.

"-Os"
تحسين المساحة.

"-EL"
إنتاج إخراج بيانات little endian.

"-EB"
إنتاج إخراج بيانات big endian.

"-mpic"
إنشاء PIC.

"-mno-fp-as-gp-relax"
قم بإيقاف تخفيف fp-as-gp لهذا الملف.

"-mb2bb-relax"
تحسين الفروع المتتالية.

"-mno-all-relax"
يقوم بإيقاف جميع عمليات الاسترخاء لهذا الملف.

"-march=<arch name>"
يقوم بتجميع التعليمات البرمجية للهندسة المعمارية <arch name>، والتي يمكن أن تكون v3 أو v3j أو v3m أو v3f أو v3s أو v2 أو v2j أو v2f أو v2s.

"-mbaseline=<baseline>"
يقوم بتجميع التعليمات البرمجية للأساس <baseline>، والتي يمكن أن تكون v2 أو v3 أو v3m.

"-mfpu-freg=FREG"
يحدد تكوين وحدة المعالجة العائمة (FPU).

    "0      8 مسجلات SP / 4 مسجلات DP"
    "1     16 مسجلات SP / 8 مسجلات DP"
    "2     32 مسجلات SP / 16 مسجلات DP"
    "3     32 مسجلات SP / 32 مسجلات DP"
"-mabi=abi"
يحدد إصدار واجهة التطبيقات الثنائية (ABI) <abi>، والتي يمكن أن تكون v1 أو v2 أو v2fp أو v2fpp.

"-m[no-]mac"
يقوم بتمكين/تعطيل دعم تعليمات الضرب.

"-m[no-]div"
يقوم بتمكين/تعطيل دعم تعليمات القسمة.

"-m[no-]16bit-ext"
يقوم بتمكين/تعطيل ملحق 16 بت.

"-m[no-]dx-regs"
يقوم بتمكين/تعطيل مسجلات d0/d1.

"-m[no-]perf-ext"
يقوم بتمكين/تعطيل ملحق الأداء.

"-m[no-]perf2-ext"
يقوم بتمكين/تعطيل ملحق الأداء 2.

"-m[no-]string-ext"
يقوم بتمكين/تعطيل ملحق السلسلة.

"-m[no-]reduced-regs"
يقوم بتمكين/تعطيل تكوين المسجلات المخفض (GPR16).

"-m[no-]audio-isa-ext"
يقوم بتمكين/تعطيل ملحق مجموعة تعليمات الصوت.

"-m[no-]fpu-sp-ext"
يقوم بتمكين/تعطيل ملحق وحدة المعالجة العائمة (FPU) للدقة الفردية.

"-m[no-]fpu-dp-ext"
يقوم بتمكين/تعطيل ملحق وحدة المعالجة العائمة (FPU) للدقة المزدوجة.

"-m[no-]fpu-fma"
يقوم بتمكين/تعطيل تعليمات الضرب التراكمي لوحدة المعالجة العائمة (FPU).

"-mall-ext"
يقوم بتشغيل جميع الملحقات ودعم التعليمات.

الخيارات التالية متاحة عند تكوين المجمع لمعالج PowerPC.

    -a32
    ينشئ ELF32 أو XCOFF32.

    -a64
    ينشئ ELF64 أو XCOFF64.

    -K PIC
    يضبط EF_PPC_RELOCATABLE_LIB في علامات ELF.

    -mpwrx | -mpwr2
    ينشئ تعليمات برمجية لـ POWER/2 (RIOS2).

    -mpwr
    ينشئ تعليمات برمجية لـ POWER (RIOS1).

    -m601
    ينشئ تعليمات برمجية لـ PowerPC 601.

    -mppc, -mppc32, -m603, -m604
    ينشئ تعليمات برمجية لـ PowerPC 603/604.

    -m403, -m405
    ينشئ تعليمات برمجية لـ PowerPC 403/405.

    -m440
    ينشئ تعليمات برمجية لـ PowerPC 440. يدعم BookE وبعض تعليمات 405.

    -m464
    ينشئ تعليمات برمجية لـ PowerPC 464.

    -m476
    ينشئ تعليمات برمجية لـ PowerPC 476.

    -m7400, -m7410, -m7450, -m7455
    ينشئ تعليمات برمجية لـ PowerPC 7400/7410/7450/7455.

    -m750cl, -mgekko, -mbroadway
    ينشئ تعليمات برمجية لـ PowerPC 750CL/Gekko/Broadway.

    -m821, -m850, -m860
    ينشئ تعليمات برمجية لـ PowerPC 821/850/860.

    -mppc64, -m620
    ينشئ تعليمات برمجية لـ PowerPC 620/625/630.

    -me200z2, -me200z4
    ينشئ تعليمات برمجية لمتغيرات e200، e200z2 مع LSP، e200z4 مع SPE.

    -me300
    ينشئ تعليمات برمجية لعائلة PowerPC e300.

    -me500, -me500x2
    ينشئ تعليمات برمجية لوحدة معالجة Motorola e500.

    -me500mc
    ينشئ تعليمات برمجية لوحدة معالجة Freescale e500mc.

    -me500mc64
    ينشئ تعليمات برمجية لوحدة معالجة Freescale e500mc64.

    -me5500
    ينشئ تعليمات برمجية لوحدة معالجة Freescale e5500.

    -me6500
    ينشئ تعليمات برمجية لوحدة معالجة Freescale e6500.

    -mlsp
    يمكّن تعليمات LSP. (يعطّل SPE و SPE2).

    -mspe
    ينشئ تعليمات برمجية لتعليمات Motorola SPE. (يعطّل LSP).

    -mspe2
    ينشئ تعليمات برمجية لتعليمات Freescale SPE2. (يعطّل LSP).

    -mtitan
    ينشئ تعليمات برمجية لوحدة معالجة AppliedMicro Titan.

    -mppc64bridge
    ينشئ تعليمات برمجية لـ PowerPC 64، بما في ذلك تعليمات الجسر.

    -mbooke
    ينشئ تعليمات برمجية لـ 32 بت BookE.

-ma2
يُنشئ كودًا لبنية A2.

-maltivec
يُنشئ كودًا للمعالجات التي تحتوي على تعليمات AltiVec.

-mvle
يُنشئ كودًا للمعالجات التي تحتوي على تعليمات Freescale PowerPC VLE.

-mvsx
يُنشئ كودًا للمعالجات التي تحتوي على تعليمات Vector-Scalar (VSX).

-mhtm
يُنشئ كودًا للمعالجات التي تحتوي على تعليمات الذاكرة المعاملاتية للأجهزة.

-mpower4, -mpwr4
يُنشئ كودًا لبنية Power4.

-mpower5, -mpwr5, -mpwr5x
يُنشئ كودًا لبنية Power5.

-mpower6, -mpwr6
يُنشئ كودًا لبنية Power6.

-mpower7, -mpwr7
يُنشئ كودًا لبنية Power7.

-mpower8, -mpwr8
يُنشئ كودًا لبنية Power8.

-mpower9, -mpwr9
يُنشئ كودًا لبنية Power9.

-mpower10, -mpwr10
يُنشئ كودًا لبنية Power10.

-mpower11, -mpwr11
يُنشئ كودًا لبنية Power11.

-mfuture
يُنشئ كودًا للبنية "المستقبلية".

-mcell
يُنشئ كودًا لبنية Cell Broadband Engine.

-mcom
يُنشئ كودًا لتعليمات Power/PowerPC المشتركة.

-many
يُنشئ كودًا لأي بنية (PWR/PWRX/PPC).

-mregnames
يسمح باستخدام أسماء رمزية للمسجلات.

-mno-regnames
لا يسمح باستخدام أسماء رمزية للمسجلات.

-mrelocatable
يدعم خيار GCC `-mrelocatable`.

-mrelocatable-lib
يدعم خيار GCC `-mrelocatable-lib`.

-memb
يُعيّن بت PPC\_EMB في علامات ELF.

-mlittle, -mlittle-endian, -le
يُنشئ كودًا لجهاز ذي ترتيب بايت صغير.

-mbig, -mbig-endian, -be
يُنشئ كودًا لجهاز ذي ترتيب بايت كبير.

-nops=count
إذا أضافت توجيهات المحاذاة أكثر من `count` من تعليمات "لا تفعل شيئًا"، ضع فرعًا في البداية لتخطي تنفيذ تعليمات "لا تفعل شيئًا".

تتوفر الخيارات التالية عند تكوين المجمع لمعالج RISC-V.

-fpic
-fPIC
يُنشئ كودًا مستقلًا عن الموضع.

-fno-pic
لا يُنشئ كودًا مستقلاً عن الموضع (افتراضي).

-march=ISA|Profiles|Profiles_ISA
يحدد مجموعة التعليمات الأساسية، كما هو محدد بواسطة `ISA` أو `Profiles` أو `Profiles_ISA`. على سبيل المثال:
`-march=rv32ima` `-march=RVI20U64` `-march=RVI20U64_d`. إذا لم يتم تعيين هذا الخيار وسمات البنية، فسيتحقق المجمع من إعداد التكوين الافتراضي `--with-arch=ISA`.

-misa-spec=ISAspec
يحدد إصدار مجموعة التعليمات الافتراضية. إذا لم يتم تعيين إصدار مجموعة التعليمات بواسطة `-march`، فسوف يساعد المجمع في تعيين الإصدار وفقًا لمجموعة التعليمات الافتراضية المحددة. إذا لم يتم تعيين هذا الخيار، فسيتحقق المجمع من إعداد التكوين الافتراضي `--with-isa-spec=ISAspec`.

-mpriv-spec=PRIVspec
يحدد إصدار المواصفات المميزة. يمكننا تحديد ما إذا كانت وحدة التحكم في الحالة (CSR) صالحة أم لا وفقًا للمواصفات المميزة المحددة. إذا لم يتم تعيين هذا الخيار وسمات الامتياز، فسيتحقق المجمع من إعداد التكوين الافتراضي `--with-priv-spec=PRIVspec`.

-mabi=ABI
يحدد واجهة التطبيقات الثنائية (ABI)، والتي يمكن أن تكون "ilp32" أو "lp64"، متبوعة اختياريًا بـ "f" أو "d" أو "q" للإشارة إلى اتفاقية استدعاء النقطة العائمة ذات الدقة المفردة أو المزدوجة أو الرباعية، أو لا شيء أو "e" للإشارة إلى اتفاقية استدعاء النقطة العائمة البرمجية ("e" يشير إلى ABI RVE ذات النقطة العائمة البرمجية).

-mrelax
استغل تعديلات الرابط لتقليل عدد التعليمات المطلوبة لتحديد عناوين الرموز. (افتراضي)

-mno-relax
لا تقم بإجراء تعديلات الرابط.

-march-attr
قم بإنشاء المحتويات الافتراضية لقسم سمات ملف ELF الخاص بـ RISC-V إذا لم يتم تعيين توجيهات `.attribute`. يُستخدم هذا القسم لتسجيل المعلومات التي يحتاجها الرابط أو مُحمِّل وقت التشغيل للتحقق من التوافق. تتضمن هذه المعلومات سلسلة ISA ومتطلبات محاذاة المكدس وعمليات الوصول إلى الذاكرة غير المحاذة والإصدار الرئيسي والثانوي والتصحيحي لمواصفات الامتياز.

-mno-arch-attr
لا تقم بإنشاء قسم سمات ملف ELF الخاص بـ RISC-V إذا لم يتم تعيين توجيهات `.attribute`.

-mcsr-check
قم بتمكين فحص CSR لوحدات تحكم الحالة الخاصة بالـ ISA والوحدات التي للقراءة فقط. تكون وحدات تحكم الحالة الخاصة بالـ ISA صالحة فقط عند تعيين الـ ISA المحدد. لا يمكن كتابة وحدات تحكم الحالة التي للقراءة فقط بواسطة تعليمات CSR.

-mno-csr-check
لا تقم بإجراء فحص CSR.

-mlittle-endian
قم بإنشاء رمز لجهاز ذي ترتيب بايت صغير.

-mbig-endian
قم بإنشاء رمز لجهاز ذي ترتيب بايت كبير.

راجع صفحات المعلومات للحصول على وثائق حول الخيارات الخاصة بـ RX.

تتوفر الخيارات التالية عند تكوين as لمعالج s390.

-m31
-m64
حدد حجم الكلمة، إما 31/32 بت أو 64 بت.

-mesa
-mzarch
حدد وضع الهندسة المعمارية، إما هندسة النظام المؤسسي (esa) أو وضع z/Architecture (zarch).

-march=processor
حدد متغير معالج s390 الهدف، g5 (أو arch3)، g6، z900 (أو arch5)، z990 (أو arch6)، z9-109، z9-ec (أو arch7)، z10 (أو arch8)، z196 (أو arch9)، zEC12 (أو arch10)، z13 (أو arch11)، z14 (أو arch12)، z15 (أو arch13)، z16 (أو arch14)، أو z17 (أو arch15).

-mregnames
-mno-regnames
اسمح أو امنع الأسماء الرمزية للمسجلات.

-mwarn-areg-zero
قم بإصدار تحذير كلما تم تحديد المعامل للمسجل الأساسي أو مسجل الفهرس ولكن قيمته تساوي صفرًا.

-mwarn-regtype-mismatch=strict
-mwarn-regtype-mismatch=relaxed
-mwarn-regtype-mismatch=no
-mno-warn-regtype-mismatch
يتحكم فيما إذا كان المجمع يقوم بإجراء فحوصات نوع اسم المسجل ويصدر رسالة تحذير في حالة وجود عدم تطابق بين نوع المعامل ونوع المسجل. الافتراضي (والذي يمكن استعادته باستخدام الوسيطة "relaxed") هو إجراء فحوصات نوع اسم المسجل بشكل مرن، والتي تسمح بتحديد أسماء مسجلات الفاصلة العائمة (%f0 إلى %f15) كمعاملات للمسجلات المتجهة (VR) وأسماء المسجلات المتجهة (VR) (%v0 إلى %v15) كمعاملات لمسجلات الفاصلة العائمة (FPR). هذا مقبول لأن مسجلات الفاصلة العائمة مضمنة في النصف السفلي من المسجلات المتجهة. باستخدام الوسيطة "strict"، يتم إجراء فحوصات نوع اسم المسجل بشكل صارم. الوسيطة "no"، وهي مكافئة لـ "-mno-warn-regtype-mismatch"، تعطل أي فحوصات لنوع اسم المسجل.

تتوفر الخيارات التالية عند تكوين as لمعالج TMS320C6000.


-march=arch
قم بتمكين (فقط) التعليمات من معمارية arch. افتراضيًا، يتم السماح بجميع التعليمات.

تُقبل القيم التالية لـ arch: "c62x" و "c64x" و "c64x+" و "c67x" و "c67x+" و "c674x".

-mdsbt
-mno-dsbt
يؤدي خيار -mdsbt إلى قيام المجمّع بإنشاء السمة "Tag\_ABI\_DSBT" بقيمة 1، مما يشير إلى أن الكود يستخدم عنونة DSBT. يؤدي خيار -mno-dsbt، وهو الافتراضي، إلى جعل العلامة بقيمة 0، مما يشير إلى أن الكود لا يستخدم عنونة DSBT. سيصدر الرابط تحذيرًا إذا تم ربط كائنات من أنواع مختلفة (DSBT وغير DSBT) معًا.

-mpid=no
-mpid=near
-mpid=far
يؤدي خيار -mpid= إلى قيام المجمّع بإنشاء السمة "Tag\_ABI\_PID" بقيمة تشير إلى شكل عنونة البيانات المستخدم بواسطة الكود. يشير -mpid=no، وهو الافتراضي، إلى عنونة البيانات المعتمدة على الموضع، ويشير -mpid=near إلى عنونة مستقلة عن الموضع مع عمليات وصول GOT باستخدام عنونة DP قريبة، ويشير -mpid=far إلى عنونة مستقلة عن الموضع مع عمليات وصول GOT باستخدام عنونة DP بعيدة. سيصدر الرابط تحذيرًا إذا تم ربط كائنات تم إنشاؤها بإعدادات مختلفة لهذا الخيار معًا.

-mpic
-mno-pic
يؤدي خيار -mpic إلى قيام المجمّع بإنشاء السمة "Tag\_ABI\_PIC" بقيمة 1، مما يشير إلى أن الكود يستخدم عنونة كود مستقلة عن الموضع. يؤدي خيار "-mno-pic"، وهو الافتراضي، إلى جعل العلامة بقيمة 0، مما يشير إلى عنونة كود معتمدة على الموضع. سيصدر الرابط تحذيرًا إذا تم ربط كائنات من أنواع مختلفة (معتمدة على الموضع وغير معتمدة على الموضع) معًا.

-mbig-endian
-mlittle-endian
قم بإنشاء كود للترتيب النهائي المحدد. الافتراضي هو little-endian.

تتوفر الخيارات التالية عند تكوين as لمعالج TILE-Gx.

-m32 | -m64
حدد حجم الكلمة، إما 32 بت أو 64 بت.

-EB | -EL
حدد الترتيب النهائي، إما big-endian (-EB) أو little-endian (-EL).

يتوفر الخيار التالي عند تكوين as لمعالج Visium.

-mtune=arch
يحدد هذا الخيار معمارية الهدف. إذا تم إجراء محاولة لتجميع تعليمة لن يتم تنفيذها على معمارية الهدف، فسيصدر المجمّع رسالة خطأ.

يتم التعرف على الأسماء التالية: "mcm24" و "mcm" و "gr5" و "gr6"

تتوفر الخيارات التالية عند تكوين as لمعالج Xtensa.

--text-section-literals | --no-text-section-literals
تحكم في معالجة مجموعات القيم الحرفية. الافتراضي هو --no-text-section-literals، والذي يضع القيم الحرفية في أقسام منفصلة في ملف الإخراج. يتيح ذلك وضع مجموعة القيم الحرفية في ذاكرة وصول عشوائي/ذاكرة قراءة فقط للبيانات. باستخدام --text-section-literals، يتم تضمين القيم الحرفية في قسم النص من أجل إبقائها قريبة قدر الإمكان من مراجعها. قد يكون هذا ضروريًا لملفات التجميع الكبيرة، حيث ستكون القيم الحرفية بخلاف ذلك خارج نطاق التعليمات "L32R" في قسم النص. يتم تجميع القيم الحرفية في مجموعات في أقسام تتبع التوجيهات ".literal_position" أو تسبق التعليمات "ENTRY". تؤثر هذه الخيارات فقط على القيم الحرفية التي يتم الرجوع إليها عبر تعليمات PC-relative "L32R"؛ تتم معالجة القيم الحرفية للتعليمات "L32R" في الوضع المطلق بشكل منفصل.

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

التحكم في معالجة تجمعات القيم الحرفية. الافتراضي هو --no-auto-litpools، والذي في حالة عدم وجود --text-section-literals يضع القيم الحرفية في أقسام منفصلة في ملف الإخراج. يسمح هذا بوضع تجمع القيم الحرفية في ذاكرة الوصول العشوائي/ذاكرة القراءة فقط. مع --auto-litpools، يتم توزيع القيم الحرفية في قسم النص من أجل إبقائها قريبة قدر الإمكان من مراجعها، ولا تكون هناك حاجة إلى توجيهات ".literal_position" صريحة. قد يكون هذا ضروريًا للوظائف الكبيرة جدًا، حيث قد لا يكون تجمع القيم الحرفية الواحد في بداية الوظيفة في متناول تعليمات "L32R" في النهاية. تؤثر هذه الخيارات فقط على القيم الحرفية التي تتم الإشارة إليها عبر تعليمات "L32R" النسبية لوحدة المعالجة المركزية؛ تتم معالجة القيم الحرفية الخاصة بتعليمات "L32R" المطلقة بشكل منفصل. عند استخدامها معًا مع --text-section-literals، فإن --auto-litpools لها الأسبقية.

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

يشير إلى المُجمِّع ما إذا كانت تعليمات "L32R" تستخدم العنونة المطلقة أو النسبية لوحدة المعالجة المركزية. إذا كانت وحدة المعالجة المركزية تتضمن خيار العنونة المطلقة، فإن الإعداد الافتراضي هو استخدام عمليات نقل "L32R" المطلقة. خلاف ذلك، يمكن استخدام عمليات نقل "L32R" النسبية لوحدة المعالجة المركزية فقط.

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

تمكين أو تعطيل المحاذاة التلقائية لتقليل عقوبات الفروع على حساب زيادة حجم التعليمات البرمجية. يتم تمكين هذا التحسين افتراضيًا. لاحظ أن المُجمِّع سيقوم دائمًا بمحاذاة التعليمات مثل "LOOP" التي لها متطلبات محاذاة ثابتة.

--longcalls | --no-longcalls

تمكين أو تعطيل تحويل تعليمات الاستدعاء للسماح بالاستدعاءات عبر نطاق أوسع من العناوين. يجب استخدام هذا الخيار عندما يمكن أن تكون أهداف الاستدعاء خارج النطاق. قد يؤدي ذلك إلى تقليل حجم التعليمات البرمجية والأداء، ولكن يمكن للرابط عمومًا تحسين التكاليف غير الضرورية عندما ينتهي الاستدعاء في النطاق. الإعداد الافتراضي هو --no-longcalls.

--transform | --no-transform

تمكين أو تعطيل جميع تحويلات المُجمِّع لتعليمات Xtensa، بما في ذلك كل من الاسترخاء والتحسين. الإعداد الافتراضي هو --transform؛ يجب استخدام --no-transform فقط في الحالات النادرة التي يجب أن تكون فيها التعليمات مطابقة تمامًا لما هو محدد في التعليمات البرمجية المصدر. يتسبب استخدام --no-transform في أن تكون معاملات التعليمات البرمجية الخارجة عن النطاق أخطاء.

--rename-section oldname=newname

إعادة تسمية القسم oldname إلى newname. يمكن استخدام هذا الخيار عدة مرات لإعادة تسمية أقسام متعددة.

--trampolines | --no-trampolines

تمكين أو تعطيل تحويل تعليمات القفز للسماح بالقفزات عبر نطاق أوسع من العناوين. يجب استخدام هذا الخيار عندما يمكن أن تكون أهداف القفز خارج النطاق. في غياب هذه القفزات، لا يؤثر هذا الخيار على حجم التعليمات البرمجية أو أدائها. الإعداد الافتراضي هو --trampolines.


--abi-windowed | --abi-call0

اختر علامة ABI التي سيتم كتابتها في قسم ".xtensa.info". تشير علامة ABI إلى ABI التعليمات البرمجية المجمعة. يتم إصدار تحذير بواسطة الرابط عند محاولة ربط ملفات الكائنات ذات علامات ABI غير متسقة. يتم اختيار ABI الافتراضي بواسطة تكوين Xtensa core.

الخيارات التالية متاحة عند تكوين as لمعالج Z80.

@chapter الميزات الخاصة بمعالج Z80

خيارات سطر الأوامر

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

يحدد هذا الخيار المعالج المستهدف. سيقوم المجمع بإصدار رسالة خطأ إذا تم إجراء محاولة لتجميع تعليمة لن يتم تنفيذها على المعالج المستهدف. يتم التعرف على أسماء المعالجات التالية: "z80"، "z180"، "ez80"، "gbz80"، "z80n"، "r800". بالإضافة إلى مجموعة التعليمات الأساسية، يمكن للمجمع أن يُطلب منه قبول بعض المساعدات الإضافية للتعليمات. على سبيل المثال، "-march=z180+sli+infc" يوسع z180 بتعليمات SLI وتعليمات IN F,(C). الإضافات التالية مدعومة حاليًا: "full" (جميع التعليمات المعروفة)، "adl" (وضع ADL CPU افتراضيًا، فقط لـ eZ80)، "sli" (التعليمة المعروفة باسم SLI أو SLL أو SL1)، "xyhl" (التعليمات التي تستخدم أنصاف سجلات الفهرس: IXL و IXH و IYL و IYH)، "xdcb" (التعليمات مثل RotOp (II+d),R و BitOp n,(II+d),R)، "infc" (التعليمة IN F,(C) أو IN (C))، "outc0" (التعليمة OUT (C),0). لاحظ أنه بدلاً من توسيع مجموعة التعليمات الأساسية، فإن المساعدات الإضافية للتعليمات التي تبدأ بـ "-" تلغي الوظيفة المقابلة: "-march=z80-full+xyhl" أولاً يزيل جميع الإضافات الافتراضية ثم يضيف دعمًا لأنصاف سجلات الفهرس فقط.

إذا لم يتم تحديد هذا الخيار، فسيتم افتراض "-march=z80+xyhl+infc".

-local-prefix=prefix

ضع علامة على جميع الملصقات بالبادئة المحددة على أنها محلية. ولكن يمكن وضع علامة على مثل هذا الملصق على أنه عام بشكل صريح في التعليمات البرمجية. لا يغير هذا الخيار بادئة الملصقات المحلية الافتراضية ".L"، بل يضيف فقط بادئة جديدة.

-colonless

قبول الملصقات التي لا تحتوي على نقطتين. يتم التعامل مع جميع الرموز في بداية السطر على أنها ملصقات.

-sdcc

قبول كود المجمع الذي تم إنتاجه بواسطة SDCC.

-fp-s=FORMAT

تنسيق أرقام الفاصلة العائمة ذات الدقة المفردة. الافتراضي: ieee754 (32 بت).

-fp-d=FORMAT

تنسيق أرقام الفاصلة العائمة ذات الدقة المزدوجة. الافتراضي: ieee754 (64 بت).

انظر أيضاً

gcc(1)، ld(1)، وإدخالات المعلومات الخاصة بـ binutils و ld.

حقوق النشر

حقوق النشر (ج) 1991-2025 مؤسسة البرمجيات الحرة، إنك.

يُمنح الإذن لنسخ وتوزيع و/أو تعديل هذا المستند وفقًا لشروط رخصة GNU للوثائق الحرة، الإصدار 1.3 أو أي إصدار أحدث تنشره مؤسسة البرمجيات الحرة؛ بدون أقسام ثابتة، وبدون نصوص الغلاف الأمامي، وبدون نصوص الغلاف الخلفي. يتم تضمين نسخة من الرخصة في القسم المسمى "رخصة GNU للوثائق الحرة".