1AS(1) GNU Development Tools AS(1)
2
3
4
6 AS - the portable GNU assembler.
7
9 as [-a[cdghlns][=file]] [--alternate] [-D]
10 [--compress-debug-sections] [--nocompress-debug-sections]
11 [--debug-prefix-map old=new]
12 [--defsym sym=val] [-f] [-g] [--gstabs]
13 [--gstabs+] [--gdwarf-2] [--gdwarf-sections]
14 [--help] [-I dir] [-J]
15 [-K] [-L] [--listing-lhs-width=NUM]
16 [--listing-lhs-width2=NUM] [--listing-rhs-width=NUM]
17 [--listing-cont-lines=NUM] [--keep-locals]
18 [-o objfile] [-R]
19 [--hash-size=NUM] [--reduce-memory-overheads]
20 [--statistics]
21 [-v] [-version] [--version]
22 [-W] [--warn] [--fatal-warnings] [-w] [-x]
23 [-Z] [@FILE]
24 [--sectname-subst] [--size-check=[error|warning]]
25 [--target-help] [target-options]
26 [--|files ...]
27
28 Target AArch64 options:
29 [-EB|-EL]
30 [-mabi=ABI]
31
32 Target Alpha options:
33 [-mcpu]
34 [-mdebug | -no-mdebug]
35 [-replace | -noreplace]
36 [-relax] [-g] [-Gsize]
37 [-F] [-32addr]
38
39 Target ARC options:
40 [-mcpu=cpu]
41 [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
42 [-mcode-density]
43 [-EB|-EL]
44
45 Target ARM options:
46 [-mcpu=processor[+extension...]]
47 [-march=architecture[+extension...]]
48 [-mfpu=floating-point-format]
49 [-mfloat-abi=abi]
50 [-meabi=ver]
51 [-mthumb]
52 [-EB|-EL]
53 [-mapcs-32|-mapcs-26|-mapcs-float|
54 -mapcs-reentrant]
55 [-mthumb-interwork] [-k]
56
57 Target Blackfin options:
58 [-mcpu=processor[-sirevision]]
59 [-mfdpic]
60 [-mno-fdpic]
61 [-mnopic]
62
63 Target CRIS options:
64 [--underscore | --no-underscore]
65 [--pic] [-N]
66 [--emulation=criself | --emulation=crisaout]
67 [--march=v0_v10 | --march=v10 | --march=v32 |
68 --march=common_v10_v32]
69
70 Target D10V options:
71 [-O]
72
73 Target D30V options:
74 [-O|-n|-N]
75
76 Target EPIPHANY options:
77 [-mepiphany|-mepiphany16]
78
79 Target H8/300 options:
80 [-h-tick-hex]
81
82 Target i386 options:
83 [--32|--x32|--64] [-n]
84 [-march=CPU[+EXTENSION...]] [-mtune=CPU]
85
86 Target i960 options:
87 [-ACA|-ACA_A|-ACB|-ACC|-AKA|-AKB|
88 -AKC|-AMC]
89 [-b] [-no-relax]
90
91 Target IA-64 options:
92 [-mconstant-gp|-mauto-pic]
93 [-milp32|-milp64|-mlp64|-mp64]
94 [-mle|mbe]
95 [-mtune=itanium1|-mtune=itanium2]
96 [-munwind-check=warning|-munwind-check=error]
97 [-mhint.b=ok|-mhint.b=warning|-mhint.b=error]
98 [-x|-xexplicit] [-xauto] [-xdebug]
99
100 Target IP2K options:
101 [-mip2022|-mip2022ext]
102
103 Target M32C options:
104 [-m32c|-m16c] [-relax] [-h-tick-hex]
105
106 Target M32R options:
107 [--m32rx|--[no-]warn-explicit-parallel-conflicts|
108 --W[n]p]
109
110 Target M680X0 options:
111 [-l] [-m68000|-m68010|-m68020|...]
112
113 Target M68HC11 options:
114 [-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg]
115 [-mshort|-mlong]
116 [-mshort-double|-mlong-double]
117 [--force-long-branches] [--short-branches]
118 [--strict-direct-mode] [--print-insn-syntax]
119 [--print-opcodes] [--generate-example]
120
121 Target MCORE options:
122 [-jsri2bsr] [-sifilter] [-relax]
123 [-mcpu=[210|340]]
124
125 Target Meta options:
126 [-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] Target MICROBLAZE options:
127
128 Target MIPS options:
129 [-nocpp] [-EL] [-EB] [-O[optimization level]]
130 [-g[debug level]] [-G num] [-KPIC] [-call_shared]
131 [-non_shared] [-xgot [-mvxworks-pic]
132 [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
133 [-mfp64] [-mgp64] [-mfpxx]
134 [-modd-spreg] [-mno-odd-spreg]
135 [-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
136 [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
137 [-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2]
138 [-mips64r3] [-mips64r5] [-mips64r6]
139 [-construct-floats] [-no-construct-floats]
140 [-mnan=encoding]
141 [-trap] [-no-break] [-break] [-no-trap]
142 [-mips16] [-no-mips16]
143 [-mmicromips] [-mno-micromips]
144 [-msmartmips] [-mno-smartmips]
145 [-mips3d] [-no-mips3d]
146 [-mdmx] [-no-mdmx]
147 [-mdsp] [-mno-dsp]
148 [-mdspr2] [-mno-dspr2]
149 [-mmsa] [-mno-msa]
150 [-mxpa] [-mno-xpa]
151 [-mmt] [-mno-mt]
152 [-mmcu] [-mno-mcu]
153 [-minsn32] [-mno-insn32]
154 [-mfix7000] [-mno-fix7000]
155 [-mfix-rm7000] [-mno-fix-rm7000]
156 [-mfix-vr4120] [-mno-fix-vr4120]
157 [-mfix-vr4130] [-mno-fix-vr4130]
158 [-mdebug] [-no-mdebug]
159 [-mpdr] [-mno-pdr]
160
161 Target MMIX options:
162 [--fixed-special-register-names] [--globalize-symbols]
163 [--gnu-syntax] [--relax] [--no-predefined-symbols]
164 [--no-expand] [--no-merge-gregs] [-x]
165 [--linker-allocated-gregs]
166
167 Target Nios II options:
168 [-relax-all] [-relax-section] [-no-relax]
169 [-EB] [-EL]
170
171 Target NDS32 options:
172 [-EL] [-EB] [-O] [-Os] [-mcpu=cpu]
173 [-misa=isa] [-mabi=abi] [-mall-ext]
174 [-m[no-]16-bit] [-m[no-]perf-ext] [-m[no-]perf2-ext]
175 [-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div]
176 [-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext]
177 [-m[no-]fpu-fma] [-mfpu-freg=FREG] [-mreduced-regs]
178 [-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax]
179 [-mb2bb]
180
181 Target PDP11 options:
182 [-mpic|-mno-pic] [-mall] [-mno-extensions]
183 [-mextension|-mno-extension]
184 [-mcpu] [-mmachine]
185
186 Target picoJava options:
187 [-mb|-me]
188
189 Target PowerPC options:
190 [-a32|-a64]
191 [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405|
192 -m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mppc64|
193 -m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500|-me6500|-mppc64bridge|
194 -mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x|-mpower6|-mpwr6|
195 -mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2|
196 -mcell|-mspe|-mtitan|-me300|-mcom]
197 [-many] [-maltivec|-mvsx|-mhtm|-mvle]
198 [-mregnames|-mno-regnames]
199 [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb]
200 [-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be]
201 [-msolaris|-mno-solaris]
202 [-nops=count]
203
204 Target RL78 options:
205 [-mg10]
206 [-m32bit-doubles|-m64bit-doubles]
207
208 Target RX options:
209 [-mlittle-endian|-mbig-endian]
210 [-m32bit-doubles|-m64bit-doubles]
211 [-muse-conventional-section-names]
212 [-msmall-data-limit]
213 [-mpid]
214 [-mrelax]
215 [-mint-register=number]
216 [-mgcc-abi|-mrx-abi]
217
218 Target s390 options:
219 [-m31|-m64] [-mesa|-mzarch] [-march=CPU]
220 [-mregnames|-mno-regnames]
221 [-mwarn-areg-zero]
222
223 Target SCORE options:
224 [-EB][-EL][-FIXDD][-NWARN]
225 [-SCORE5][-SCORE5U][-SCORE7][-SCORE3]
226 [-march=score7][-march=score3]
227 [-USE_R1][-KPIC][-O0][-G num][-V]
228
229 Target SPARC options:
230 [-Av6|-Av7|-Av8|-Asparclet|-Asparclite
231 -Av8plus|-Av8plusa|-Av9|-Av9a]
232 [-xarch=v8plus|-xarch=v8plusa] [-bump]
233 [-32|-64]
234
235 Target TIC54X options:
236 [-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
237 [-merrors-to-file <filename>|-me <filename>]
238
239 Target TIC6X options:
240 [-march=arch] [-mbig-endian|-mlittle-endian]
241 [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far]
242 [-mpic|-mno-pic]
243
244 Target TILE-Gx options:
245 [-m32|-m64][-EB][-EL]
246
247 Target Visium options:
248 [-mtune=arch]
249
250 Target Xtensa options:
251 [--[no-]text-section-literals] [--[no-]auto-litpools]
252 [--[no-]absolute-literals]
253 [--[no-]target-align] [--[no-]longcalls]
254 [--[no-]transform]
255 [--rename-section oldname=newname]
256 [--[no-]trampolines]
257
258 Target Z80 options:
259 [-z80] [-r800]
260 [ -ignore-undocumented-instructions] [-Wnud]
261 [ -ignore-unportable-instructions] [-Wnup]
262 [ -warn-undocumented-instructions] [-Wud]
263 [ -warn-unportable-instructions] [-Wup]
264 [ -forbid-undocumented-instructions] [-Fud]
265 [ -forbid-unportable-instructions] [-Fup]
266
268 GNU as is really a family of assemblers. If you use (or have used) the
269 GNU assembler on one architecture, you should find a fairly similar
270 environment when you use it on another architecture. Each version has
271 much in common with the others, including object file formats, most
272 assembler directives (often called pseudo-ops) and assembler syntax.
273
274 as is primarily intended to assemble the output of the GNU C compiler
275 "gcc" for use by the linker "ld". Nevertheless, we've tried to make as
276 assemble correctly everything that other assemblers for the same
277 machine would assemble. Any exceptions are documented explicitly.
278 This doesn't mean as always uses the same syntax as another assembler
279 for the same architecture; for example, we know of several incompatible
280 versions of 680x0 assembly language syntax.
281
282 Each time you run as it assembles exactly one source program. The
283 source program is made up of one or more files. (The standard input is
284 also a file.)
285
286 You give as a command line that has zero or more input file names. The
287 input files are read (from left file name to right). A command line
288 argument (in any position) that has no special meaning is taken to be
289 an input file name.
290
291 If you give as no file names it attempts to read one input file from
292 the as standard input, which is normally your terminal. You may have
293 to type ctl-D to tell as there is no more program to assemble.
294
295 Use -- if you need to explicitly name the standard input file in your
296 command line.
297
298 If the source is empty, as produces a small, empty object file.
299
300 as may write warnings and error messages to the standard error file
301 (usually your terminal). This should not happen when a compiler runs
302 as automatically. Warnings report an assumption made so that as could
303 keep assembling a flawed program; errors report a grave problem that
304 stops the assembly.
305
306 If you are invoking as via the GNU C compiler, you can use the -Wa
307 option to pass arguments through to the assembler. The assembler
308 arguments must be separated from each other (and the -Wa) by commas.
309 For example:
310
311 gcc -c -g -O -Wa,-alh,-L file.c
312
313 This passes two options to the assembler: -alh (emit a listing to
314 standard output with high-level and assembly source) and -L (retain
315 local symbols in the symbol table).
316
317 Usually you do not need to use this -Wa mechanism, since many compiler
318 command-line options are automatically passed to the assembler by the
319 compiler. (You can call the GNU compiler driver with the -v option to
320 see precisely what options it passes to each compilation pass,
321 including the assembler.)
322
324 @file
325 Read command-line options from file. The options read are inserted
326 in place of the original @file option. If file does not exist, or
327 cannot be read, then the option will be treated literally, and not
328 removed.
329
330 Options in file are separated by whitespace. A whitespace
331 character may be included in an option by surrounding the entire
332 option in either single or double quotes. Any character (including
333 a backslash) may be included by prefixing the character to be
334 included with a backslash. The file may itself contain additional
335 @file options; any such options will be processed recursively.
336
337 -a[cdghlmns]
338 Turn on listings, in any of a variety of ways:
339
340 -ac omit false conditionals
341
342 -ad omit debugging directives
343
344 -ag include general information, like as version and options passed
345
346 -ah include high-level source
347
348 -al include assembly
349
350 -am include macro expansions
351
352 -an omit forms processing
353
354 -as include symbols
355
356 =file
357 set the name of the listing file
358
359 You may combine these options; for example, use -aln for assembly
360 listing without forms processing. The =file option, if used, must
361 be the last one. By itself, -a defaults to -ahls.
362
363 --alternate
364 Begin in alternate macro mode.
365
366 --compress-debug-sections
367 Compress DWARF debug sections using zlib with SHF_COMPRESSED from
368 the ELF ABI. The resulting object file may not be compatible with
369 older linkers and object file utilities. Note if compression would
370 make a given section larger then it is not compressed.
371
372 --compress-debug-sections=none
373 --compress-debug-sections=zlib
374 --compress-debug-sections=zlib-gnu
375 --compress-debug-sections=zlib-gabi
376 These options control how DWARF debug sections are compressed.
377 --compress-debug-sections=none is equivalent to
378 --nocompress-debug-sections. --compress-debug-sections=zlib and
379 --compress-debug-sections=zlib-gabi are equivalent to
380 --compress-debug-sections. --compress-debug-sections=zlib-gnu
381 compresses DWARF debug sections using zlib. The debug sections are
382 renamed to begin with .zdebug. Note if compression would make a
383 given section larger then it is not compressed nor renamed.
384
385 --nocompress-debug-sections
386 Do not compress DWARF debug sections. This is usually the default
387 for all targets except the x86/x86_64, but a configure time option
388 can be used to override this.
389
390 -D Ignored. This option is accepted for script compatibility with
391 calls to other assemblers.
392
393 --debug-prefix-map old=new
394 When assembling files in directory old, record debugging
395 information describing them as in new instead.
396
397 --defsym sym=value
398 Define the symbol sym to be value before assembling the input file.
399 value must be an integer constant. As in C, a leading 0x indicates
400 a hexadecimal value, and a leading 0 indicates an octal value. The
401 value of the symbol can be overridden inside a source file via the
402 use of a ".set" pseudo-op.
403
404 -f "fast"---skip whitespace and comment preprocessing (assume source
405 is compiler output).
406
407 -g
408 --gen-debug
409 Generate debugging information for each assembler source line using
410 whichever debug format is preferred by the target. This currently
411 means either STABS, ECOFF or DWARF2.
412
413 --gstabs
414 Generate stabs debugging information for each assembler line. This
415 may help debugging assembler code, if the debugger can handle it.
416
417 --gstabs+
418 Generate stabs debugging information for each assembler line, with
419 GNU extensions that probably only gdb can handle, and that could
420 make other debuggers crash or refuse to read your program. This
421 may help debugging assembler code. Currently the only GNU
422 extension is the location of the current working directory at
423 assembling time.
424
425 --gdwarf-2
426 Generate DWARF2 debugging information for each assembler line.
427 This may help debugging assembler code, if the debugger can handle
428 it. Note---this option is only supported by some targets, not all
429 of them.
430
431 --gdwarf-sections
432 Instead of creating a .debug_line section, create a series of
433 .debug_line.foo sections where foo is the name of the corresponding
434 code section. For example a code section called .text.func will
435 have its dwarf line number information placed into a section called
436 .debug_line.text.func. If the code section is just called .text
437 then debug line section will still be called just .debug_line
438 without any suffix.
439
440 --size-check=error
441 --size-check=warning
442 Issue an error or warning for invalid ELF .size directive.
443
444 --help
445 Print a summary of the command line options and exit.
446
447 --target-help
448 Print a summary of all target specific options and exit.
449
450 -I dir
451 Add directory dir to the search list for ".include" directives.
452
453 -J Don't warn about signed overflow.
454
455 -K Issue warnings when difference tables altered for long
456 displacements.
457
458 -L
459 --keep-locals
460 Keep (in the symbol table) local symbols. These symbols start with
461 system-specific local label prefixes, typically .L for ELF systems
462 or L for traditional a.out systems.
463
464 --listing-lhs-width=number
465 Set the maximum width, in words, of the output data column for an
466 assembler listing to number.
467
468 --listing-lhs-width2=number
469 Set the maximum width, in words, of the output data column for
470 continuation lines in an assembler listing to number.
471
472 --listing-rhs-width=number
473 Set the maximum width of an input source line, as displayed in a
474 listing, to number bytes.
475
476 --listing-cont-lines=number
477 Set the maximum number of lines printed in a listing for a single
478 line of input to number + 1.
479
480 -o objfile
481 Name the object-file output from as objfile.
482
483 -R Fold the data section into the text section.
484
485 --hash-size=number
486 Set the default size of GAS's hash tables to a prime number close
487 to number. Increasing this value can reduce the length of time it
488 takes the assembler to perform its tasks, at the expense of
489 increasing the assembler's memory requirements. Similarly reducing
490 this value can reduce the memory requirements at the expense of
491 speed.
492
493 --reduce-memory-overheads
494 This option reduces GAS's memory requirements, at the expense of
495 making the assembly processes slower. Currently this switch is a
496 synonym for --hash-size=4051, but in the future it may have other
497 effects as well.
498
499 --sectname-subst
500 Honor substitution sequences in section names.
501
502 --statistics
503 Print the maximum space (in bytes) and total time (in seconds) used
504 by assembly.
505
506 --strip-local-absolute
507 Remove local absolute symbols from the outgoing symbol table.
508
509 -v
510 -version
511 Print the as version.
512
513 --version
514 Print the as version and exit.
515
516 -W
517 --no-warn
518 Suppress warning messages.
519
520 --fatal-warnings
521 Treat warnings as errors.
522
523 --warn
524 Don't suppress warning messages or treat them as errors.
525
526 -w Ignored.
527
528 -x Ignored.
529
530 -Z Generate an object file even after errors.
531
532 -- | files ...
533 Standard input, or source files to assemble.
534
535 The following options are available when as is configured for the
536 64-bit mode of the ARM Architecture (AArch64).
537
538 -EB This option specifies that the output generated by the assembler
539 should be marked as being encoded for a big-endian processor.
540
541 -EL This option specifies that the output generated by the assembler
542 should be marked as being encoded for a little-endian processor.
543
544 -mabi=abi
545 Specify which ABI the source code uses. The recognized arguments
546 are: "ilp32" and "lp64", which decides the generated object file in
547 ELF32 and ELF64 format respectively. The default is "lp64".
548
549 -mcpu=processor[+extension...]
550 This option specifies the target processor. The assembler will
551 issue an error message if an attempt is made to assemble an
552 instruction which will not execute on the target processor. The
553 following processor names are recognized: "cortex-a35",
554 "cortex-a53", "cortex-a57", "cortex-a72", "exynos-m1", "qdf24xx",
555 "thunderx", "xgene1" and "xgene2". The special name "all" may be
556 used to allow the assembler to accept instructions valid for any
557 supported processor, including all optional extensions.
558
559 In addition to the basic instruction set, the assembler can be told
560 to accept, or restrict, various extension mnemonics that extend the
561 processor.
562
563 If some implementations of a particular processor can have an
564 extension, then then those extensions are automatically enabled.
565 Consequently, you will not normally have to specify any additional
566 extensions.
567
568 -march=architecture[+extension...]
569 This option specifies the target architecture. The assembler will
570 issue an error message if an attempt is made to assemble an
571 instruction which will not execute on the target architecture. The
572 following architecture names are recognized: "armv8-a", "armv8.1-a"
573 and "armv8.2-a".
574
575 If both -mcpu and -march are specified, the assembler will use the
576 setting for -mcpu. If neither are specified, the assembler will
577 default to -mcpu=all.
578
579 The architecture option can be extended with the same instruction
580 set extension options as the -mcpu option. Unlike -mcpu,
581 extensions are not always enabled by default,
582
583 -mverbose-error
584 This option enables verbose error messages for AArch64 gas. This
585 option is enabled by default.
586
587 -mno-verbose-error
588 This option disables verbose error messages in AArch64 gas.
589
590 The following options are available when as is configured for an Alpha
591 processor.
592
593 -mcpu
594 This option specifies the target processor. If an attempt is made
595 to assemble an instruction which will not execute on the target
596 processor, the assembler may either expand the instruction as a
597 macro or issue an error message. This option is equivalent to the
598 ".arch" directive.
599
600 The following processor names are recognized: 21064, "21064a",
601 21066, 21068, 21164, "21164a", "21164pc", 21264, "21264a",
602 "21264b", "ev4", "ev5", "lca45", "ev5", "ev56", "pca56", "ev6",
603 "ev67", "ev68". The special name "all" may be used to allow the
604 assembler to accept instructions valid for any Alpha processor.
605
606 In order to support existing practice in OSF/1 with respect to
607 ".arch", and existing practice within MILO (the Linux ARC
608 bootloader), the numbered processor names (e.g. 21064) enable the
609 processor-specific PALcode instructions, while the "electro-vlasic"
610 names (e.g. "ev4") do not.
611
612 -mdebug
613 -no-mdebug
614 Enables or disables the generation of ".mdebug" encapsulation for
615 stabs directives and procedure descriptors. The default is to
616 automatically enable ".mdebug" when the first stabs directive is
617 seen.
618
619 -relax
620 This option forces all relocations to be put into the object file,
621 instead of saving space and resolving some relocations at assembly
622 time. Note that this option does not propagate all symbol
623 arithmetic into the object file, because not all symbol arithmetic
624 can be represented. However, the option can still be useful in
625 specific applications.
626
627 -replace
628 -noreplace
629 Enables or disables the optimization of procedure calls, both at
630 assemblage and at link time. These options are only available for
631 VMS targets and "-replace" is the default. See section 1.4.1 of
632 the OpenVMS Linker Utility Manual.
633
634 -g This option is used when the compiler generates debug information.
635 When gcc is using mips-tfile to generate debug information for
636 ECOFF, local labels must be passed through to the object file.
637 Otherwise this option has no effect.
638
639 -Gsize
640 A local common symbol larger than size is placed in ".bss", while
641 smaller symbols are placed in ".sbss".
642
643 -F
644 -32addr
645 These options are ignored for backward compatibility.
646
647 The following options are available when as is configured for an ARC
648 processor.
649
650 -mcpu=cpu
651 This option selects the core processor variant.
652
653 -EB | -EL
654 Select either big-endian (-EB) or little-endian (-EL) output.
655
656 -mcode-density
657 Enable Code Density extenssion instructions.
658
659 The following options are available when as is configured for the ARM
660 processor family.
661
662 -mcpu=processor[+extension...]
663 Specify which ARM processor variant is the target.
664
665 -march=architecture[+extension...]
666 Specify which ARM architecture variant is used by the target.
667
668 -mfpu=floating-point-format
669 Select which Floating Point architecture is the target.
670
671 -mfloat-abi=abi
672 Select which floating point ABI is in use.
673
674 -mthumb
675 Enable Thumb only instruction decoding.
676
677 -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
678 Select which procedure calling convention is in use.
679
680 -EB | -EL
681 Select either big-endian (-EB) or little-endian (-EL) output.
682
683 -mthumb-interwork
684 Specify that the code has been generated with interworking between
685 Thumb and ARM code in mind.
686
687 -mccs
688 Turns on CodeComposer Studio assembly syntax compatibility mode.
689
690 -k Specify that PIC code has been generated.
691
692 The following options are available when as is configured for the
693 Blackfin processor family.
694
695 -mcpu=processor[-sirevision]
696 This option specifies the target processor. The optional
697 sirevision is not used in assembler. It's here such that GCC can
698 easily pass down its "-mcpu=" option. The assembler will issue an
699 error message if an attempt is made to assemble an instruction
700 which will not execute on the target processor. The following
701 processor names are recognized: "bf504", "bf506", "bf512", "bf514",
702 "bf516", "bf518", "bf522", "bf523", "bf524", "bf525", "bf526",
703 "bf527", "bf531", "bf532", "bf533", "bf534", "bf535" (not
704 implemented yet), "bf536", "bf537", "bf538", "bf539", "bf542",
705 "bf542m", "bf544", "bf544m", "bf547", "bf547m", "bf548", "bf548m",
706 "bf549", "bf549m", "bf561", and "bf592".
707
708 -mfdpic
709 Assemble for the FDPIC ABI.
710
711 -mno-fdpic
712 -mnopic
713 Disable -mfdpic.
714
715 See the info pages for documentation of the CRIS-specific options.
716
717 The following options are available when as is configured for a D10V
718 processor.
719
720 -O Optimize output by parallelizing instructions.
721
722 The following options are available when as is configured for a D30V
723 processor.
724
725 -O Optimize output by parallelizing instructions.
726
727 -n Warn when nops are generated.
728
729 -N Warn when a nop after a 32-bit multiply instruction is generated.
730
731 The following options are available when as is configured for an
732 Epiphany processor.
733
734 -mepiphany
735 Specifies that the both 32 and 16 bit instructions are allowed.
736 This is the default behavior.
737
738 -mepiphany16
739 Restricts the permitted instructions to just the 16 bit set.
740
741 The following options are available when as is configured for an H8/300
742 processor. @chapter H8/300 Dependent Features
743
744 Options
745 The Renesas H8/300 version of "as" has one machine-dependent option:
746
747 -h-tick-hex
748 Support H'00 style hex constants in addition to 0x00 style.
749
750 -mach=name
751 Sets the H8300 machine variant. The following machine names are
752 recognised: "h8300h", "h8300hn", "h8300s", "h8300sn", "h8300sx" and
753 "h8300sxn".
754
755 The following options are available when as is configured for an i386
756 processor.
757
758 --32 | --x32 | --64
759 Select the word size, either 32 bits or 64 bits. --32 implies
760 Intel i386 architecture, while --x32 and --64 imply AMD x86-64
761 architecture with 32-bit or 64-bit word-size respectively.
762
763 These options are only available with the ELF object file format,
764 and require that the necessary BFD support has been included (on a
765 32-bit platform you have to add --enable-64-bit-bfd to configure
766 enable 64-bit usage and use x86-64 as target platform).
767
768 -n By default, x86 GAS replaces multiple nop instructions used for
769 alignment within code sections with multi-byte nop instructions
770 such as leal 0(%esi,1),%esi. This switch disables the
771 optimization.
772
773 --divide
774 On SVR4-derived platforms, the character / is treated as a comment
775 character, which means that it cannot be used in expressions. The
776 --divide option turns / into a normal character. This does not
777 disable / at the beginning of a line starting a comment, or affect
778 using # for starting a comment.
779
780 -march=CPU[+EXTENSION...]
781 This option specifies the target processor. The assembler will
782 issue an error message if an attempt is made to assemble an
783 instruction which will not execute on the target processor. The
784 following processor names are recognized: "i8086", "i186", "i286",
785 "i386", "i486", "i586", "i686", "pentium", "pentiumpro",
786 "pentiumii", "pentiumiii", "pentium4", "prescott", "nocona",
787 "core", "core2", "corei7", "l1om", "k1om", "iamcu", "k6", "k6_2",
788 "athlon", "opteron", "k8", "amdfam10", "bdver1", "bdver2",
789 "bdver3", "bdver4", "znver1", "btver1", "btver2", "generic32" and
790 "generic64".
791
792 In addition to the basic instruction set, the assembler can be told
793 to accept various extension mnemonics. For example,
794 "-march=i686+sse4+vmx" extends i686 with sse4 and vmx. The
795 following extensions are currently supported: 8087, 287, 387,
796 "no87", "mmx", "nommx", "sse", "sse2", "sse3", "ssse3", "sse4.1",
797 "sse4.2", "sse4", "nosse", "avx", "avx2", "adx", "rdseed",
798 "prfchw", "smap", "mpx", "sha", "prefetchwt1", "clflushopt", "se1",
799 "clwb", "pcommit", "avx512f", "avx512cd", "avx512er", "avx512pf",
800 "avx512vl", "avx512bw", "avx512dq", "avx512ifma", "avx512vbmi",
801 "noavx", "vmx", "vmfunc", "smx", "xsave", "xsaveopt", "xsavec",
802 "xsaves", "aes", "pclmul", "fsgsbase", "rdrnd", "f16c", "bmi2",
803 "fma", "movbe", "ept", "lzcnt", "hle", "rtm", "invpcid", "clflush",
804 "mwaitx", "clzero", "lwp", "fma4", "xop", "cx16", "syscall",
805 "rdtscp", "3dnow", "3dnowa", "sse4a", "sse5", "svme", "abm" and
806 "padlock". Note that rather than extending a basic instruction
807 set, the extension mnemonics starting with "no" revoke the
808 respective functionality.
809
810 When the ".arch" directive is used with -march, the ".arch"
811 directive will take precedent.
812
813 -mtune=CPU
814 This option specifies a processor to optimize for. When used in
815 conjunction with the -march option, only instructions of the
816 processor specified by the -march option will be generated.
817
818 Valid CPU values are identical to the processor list of -march=CPU.
819
820 -msse2avx
821 This option specifies that the assembler should encode SSE
822 instructions with VEX prefix.
823
824 -msse-check=none
825 -msse-check=warning
826 -msse-check=error
827 These options control if the assembler should check SSE
828 instructions. -msse-check=none will make the assembler not to
829 check SSE instructions, which is the default. -msse-check=warning
830 will make the assembler issue a warning for any SSE instruction.
831 -msse-check=error will make the assembler issue an error for any
832 SSE instruction.
833
834 -mavxscalar=128
835 -mavxscalar=256
836 These options control how the assembler should encode scalar AVX
837 instructions. -mavxscalar=128 will encode scalar AVX instructions
838 with 128bit vector length, which is the default. -mavxscalar=256
839 will encode scalar AVX instructions with 256bit vector length.
840
841 -mevexlig=128
842 -mevexlig=256
843 -mevexlig=512
844 These options control how the assembler should encode length-
845 ignored (LIG) EVEX instructions. -mevexlig=128 will encode LIG
846 EVEX instructions with 128bit vector length, which is the default.
847 -mevexlig=256 and -mevexlig=512 will encode LIG EVEX instructions
848 with 256bit and 512bit vector length, respectively.
849
850 -mevexwig=0
851 -mevexwig=1
852 These options control how the assembler should encode w-ignored
853 (WIG) EVEX instructions. -mevexwig=0 will encode WIG EVEX
854 instructions with evex.w = 0, which is the default. -mevexwig=1
855 will encode WIG EVEX instructions with evex.w = 1.
856
857 -mmnemonic=att
858 -mmnemonic=intel
859 This option specifies instruction mnemonic for matching
860 instructions. The ".att_mnemonic" and ".intel_mnemonic" directives
861 will take precedent.
862
863 -msyntax=att
864 -msyntax=intel
865 This option specifies instruction syntax when processing
866 instructions. The ".att_syntax" and ".intel_syntax" directives
867 will take precedent.
868
869 -mnaked-reg
870 This opetion specifies that registers don't require a % prefix.
871 The ".att_syntax" and ".intel_syntax" directives will take
872 precedent.
873
874 -madd-bnd-prefix
875 This option forces the assembler to add BND prefix to all branches,
876 even if such prefix was not explicitly specified in the source
877 code.
878
879 -mno-shared
880 On ELF target, the assembler normally optimizes out non-PLT
881 relocations against defined non-weak global branch targets with
882 default visibility. The -mshared option tells the assembler to
883 generate code which may go into a shared library where all non-weak
884 global branch targets with default visibility can be preempted.
885 The resulting code is slightly bigger. This option only affects
886 the handling of branch instructions.
887
888 -mbig-obj
889 On x86-64 PE/COFF target this option forces the use of big object
890 file format, which allows more than 32768 sections.
891
892 -momit-lock-prefix=no
893 -momit-lock-prefix=yes
894 These options control how the assembler should encode lock prefix.
895 This option is intended as a workaround for processors, that fail
896 on lock prefix. This option can only be safely used with single-
897 core, single-thread computers -momit-lock-prefix=yes will omit all
898 lock prefixes. -momit-lock-prefix=no will encode lock prefix as
899 usual, which is the default.
900
901 -mevexrcig=rne
902 -mevexrcig=rd
903 -mevexrcig=ru
904 -mevexrcig=rz
905 These options control how the assembler should encode SAE-only EVEX
906 instructions. -mevexrcig=rne will encode RC bits of EVEX
907 instruction with 00, which is the default. -mevexrcig=rd,
908 -mevexrcig=ru and -mevexrcig=rz will encode SAE-only EVEX
909 instructions with 01, 10 and 11 RC bits, respectively.
910
911 -mamd64
912 -mintel64
913 This option specifies that the assembler should accept only AMD64
914 or Intel64 ISA in 64-bit mode. The default is to accept both.
915
916 The following options are available when as is configured for the Intel
917 80960 processor.
918
919 -ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC
920 Specify which variant of the 960 architecture is the target.
921
922 -b Add code to collect statistics about branches taken.
923
924 -no-relax
925 Do not alter compare-and-branch instructions for long
926 displacements; error if necessary.
927
928 The following options are available when as is configured for the
929 Ubicom IP2K series.
930
931 -mip2022ext
932 Specifies that the extended IP2022 instructions are allowed.
933
934 -mip2022
935 Restores the default behaviour, which restricts the permitted
936 instructions to just the basic IP2022 ones.
937
938 The following options are available when as is configured for the
939 Renesas M32C and M16C processors.
940
941 -m32c
942 Assemble M32C instructions.
943
944 -m16c
945 Assemble M16C instructions (the default).
946
947 -relax
948 Enable support for link-time relaxations.
949
950 -h-tick-hex
951 Support H'00 style hex constants in addition to 0x00 style.
952
953 The following options are available when as is configured for the
954 Renesas M32R (formerly Mitsubishi M32R) series.
955
956 --m32rx
957 Specify which processor in the M32R family is the target. The
958 default is normally the M32R, but this option changes it to the
959 M32RX.
960
961 --warn-explicit-parallel-conflicts or --Wp
962 Produce warning messages when questionable parallel constructs are
963 encountered.
964
965 --no-warn-explicit-parallel-conflicts or --Wnp
966 Do not produce warning messages when questionable parallel
967 constructs are encountered.
968
969 The following options are available when as is configured for the
970 Motorola 68000 series.
971
972 -l Shorten references to undefined symbols, to one word instead of
973 two.
974
975 -m68000 | -m68008 | -m68010 | -m68020 | -m68030
976 | -m68040 | -m68060 | -m68302 | -m68331 | -m68332
977 | -m68333 | -m68340 | -mcpu32 | -m5200
978 Specify what processor in the 68000 family is the target. The
979 default is normally the 68020, but this can be changed at
980 configuration time.
981
982 -m68881 | -m68882 | -mno-68881 | -mno-68882
983 The target machine does (or does not) have a floating-point
984 coprocessor. The default is to assume a coprocessor for 68020,
985 68030, and cpu32. Although the basic 68000 is not compatible with
986 the 68881, a combination of the two can be specified, since it's
987 possible to do emulation of the coprocessor instructions with the
988 main processor.
989
990 -m68851 | -mno-68851
991 The target machine does (or does not) have a memory-management unit
992 coprocessor. The default is to assume an MMU for 68020 and up.
993
994 The following options are available when as is configured for an Altera
995 Nios II processor.
996
997 -relax-section
998 Replace identified out-of-range branches with PC-relative "jmp"
999 sequences when possible. The generated code sequences are suitable
1000 for use in position-independent code, but there is a practical
1001 limit on the extended branch range because of the length of the
1002 sequences. This option is the default.
1003
1004 -relax-all
1005 Replace branch instructions not determinable to be in range and all
1006 call instructions with "jmp" and "callr" sequences (respectively).
1007 This option generates absolute relocations against the target
1008 symbols and is not appropriate for position-independent code.
1009
1010 -no-relax
1011 Do not replace any branches or calls.
1012
1013 -EB Generate big-endian output.
1014
1015 -EL Generate little-endian output. This is the default.
1016
1017 -march=architecture
1018 This option specifies the target architecture. The assembler
1019 issues an error message if an attempt is made to assemble an
1020 instruction which will not execute on the target architecture. The
1021 following architecture names are recognized: "r1", "r2". The
1022 default is "r1".
1023
1024 The following options are available when as is configured for a Meta
1025 processor.
1026
1027 "-mcpu=metac11"
1028 Generate code for Meta 1.1.
1029
1030 "-mcpu=metac12"
1031 Generate code for Meta 1.2.
1032
1033 "-mcpu=metac21"
1034 Generate code for Meta 2.1.
1035
1036 "-mfpu=metac21"
1037 Allow code to use FPU hardware of Meta 2.1.
1038
1039 See the info pages for documentation of the MMIX-specific options.
1040
1041 The following options are available when as is configured for a NDS32
1042 processor.
1043
1044 "-O1"
1045 Optimize for performance.
1046
1047 "-Os"
1048 Optimize for space.
1049
1050 "-EL"
1051 Produce little endian data output.
1052
1053 "-EB"
1054 Produce little endian data output.
1055
1056 "-mpic"
1057 Generate PIC.
1058
1059 "-mno-fp-as-gp-relax"
1060 Suppress fp-as-gp relaxation for this file.
1061
1062 "-mb2bb-relax"
1063 Back-to-back branch optimization.
1064
1065 "-mno-all-relax"
1066 Suppress all relaxation for this file.
1067
1068 "-march=<arch name>"
1069 Assemble for architecture <arch name> which could be v3, v3j, v3m,
1070 v3f, v3s, v2, v2j, v2f, v2s.
1071
1072 "-mbaseline=<baseline>"
1073 Assemble for baseline <baseline> which could be v2, v3, v3m.
1074
1075 "-mfpu-freg=FREG"
1076 Specify a FPU configuration.
1077
1078 "0 8 SP / 4 DP registers"
1079 "1 16 SP / 8 DP registers"
1080 "2 32 SP / 16 DP registers"
1081 "3 32 SP / 32 DP registers"
1082 "-mabi=abi"
1083 Specify a abi version <abi> could be v1, v2, v2fp, v2fpp.
1084
1085 "-m[no-]mac"
1086 Enable/Disable Multiply instructions support.
1087
1088 "-m[no-]div"
1089 Enable/Disable Divide instructions support.
1090
1091 "-m[no-]16bit-ext"
1092 Enable/Disable 16-bit extension
1093
1094 "-m[no-]dx-regs"
1095 Enable/Disable d0/d1 registers
1096
1097 "-m[no-]perf-ext"
1098 Enable/Disable Performance extension
1099
1100 "-m[no-]perf2-ext"
1101 Enable/Disable Performance extension 2
1102
1103 "-m[no-]string-ext"
1104 Enable/Disable String extension
1105
1106 "-m[no-]reduced-regs"
1107 Enable/Disable Reduced Register configuration (GPR16) option
1108
1109 "-m[no-]audio-isa-ext"
1110 Enable/Disable AUDIO ISA extension
1111
1112 "-m[no-]fpu-sp-ext"
1113 Enable/Disable FPU SP extension
1114
1115 "-m[no-]fpu-dp-ext"
1116 Enable/Disable FPU DP extension
1117
1118 "-m[no-]fpu-fma"
1119 Enable/Disable FPU fused-multiply-add instructions
1120
1121 "-mall-ext"
1122 Turn on all extensions and instructions support
1123
1124 The following options are available when as is configured for a PowerPC
1125 processor.
1126
1127 -a32
1128 Generate ELF32 or XCOFF32.
1129
1130 -a64
1131 Generate ELF64 or XCOFF64.
1132
1133 -K PIC
1134 Set EF_PPC_RELOCATABLE_LIB in ELF flags.
1135
1136 -mpwrx | -mpwr2
1137 Generate code for POWER/2 (RIOS2).
1138
1139 -mpwr
1140 Generate code for POWER (RIOS1)
1141
1142 -m601
1143 Generate code for PowerPC 601.
1144
1145 -mppc, -mppc32, -m603, -m604
1146 Generate code for PowerPC 603/604.
1147
1148 -m403, -m405
1149 Generate code for PowerPC 403/405.
1150
1151 -m440
1152 Generate code for PowerPC 440. BookE and some 405 instructions.
1153
1154 -m464
1155 Generate code for PowerPC 464.
1156
1157 -m476
1158 Generate code for PowerPC 476.
1159
1160 -m7400, -m7410, -m7450, -m7455
1161 Generate code for PowerPC 7400/7410/7450/7455.
1162
1163 -m750cl
1164 Generate code for PowerPC 750CL.
1165
1166 -m821, -m850, -m860
1167 Generate code for PowerPC 821/850/860.
1168
1169 -mppc64, -m620
1170 Generate code for PowerPC 620/625/630.
1171
1172 -me500, -me500x2
1173 Generate code for Motorola e500 core complex.
1174
1175 -me500mc
1176 Generate code for Freescale e500mc core complex.
1177
1178 -me500mc64
1179 Generate code for Freescale e500mc64 core complex.
1180
1181 -me5500
1182 Generate code for Freescale e5500 core complex.
1183
1184 -me6500
1185 Generate code for Freescale e6500 core complex.
1186
1187 -mspe
1188 Generate code for Motorola SPE instructions.
1189
1190 -mtitan
1191 Generate code for AppliedMicro Titan core complex.
1192
1193 -mppc64bridge
1194 Generate code for PowerPC 64, including bridge insns.
1195
1196 -mbooke
1197 Generate code for 32-bit BookE.
1198
1199 -ma2
1200 Generate code for A2 architecture.
1201
1202 -me300
1203 Generate code for PowerPC e300 family.
1204
1205 -maltivec
1206 Generate code for processors with AltiVec instructions.
1207
1208 -mvle
1209 Generate code for Freescale PowerPC VLE instructions.
1210
1211 -mvsx
1212 Generate code for processors with Vector-Scalar (VSX) instructions.
1213
1214 -mhtm
1215 Generate code for processors with Hardware Transactional Memory
1216 instructions.
1217
1218 -mpower4, -mpwr4
1219 Generate code for Power4 architecture.
1220
1221 -mpower5, -mpwr5, -mpwr5x
1222 Generate code for Power5 architecture.
1223
1224 -mpower6, -mpwr6
1225 Generate code for Power6 architecture.
1226
1227 -mpower7, -mpwr7
1228 Generate code for Power7 architecture.
1229
1230 -mpower8, -mpwr8
1231 Generate code for Power8 architecture.
1232
1233 -mpower9, -mpwr9
1234 Generate code for Power9 architecture.
1235
1236 -mcell
1237 -mcell
1238 Generate code for Cell Broadband Engine architecture.
1239
1240 -mcom
1241 Generate code Power/PowerPC common instructions.
1242
1243 -many
1244 Generate code for any architecture (PWR/PWRX/PPC).
1245
1246 -mregnames
1247 Allow symbolic names for registers.
1248
1249 -mno-regnames
1250 Do not allow symbolic names for registers.
1251
1252 -mrelocatable
1253 Support for GCC's -mrelocatable option.
1254
1255 -mrelocatable-lib
1256 Support for GCC's -mrelocatable-lib option.
1257
1258 -memb
1259 Set PPC_EMB bit in ELF flags.
1260
1261 -mlittle, -mlittle-endian, -le
1262 Generate code for a little endian machine.
1263
1264 -mbig, -mbig-endian, -be
1265 Generate code for a big endian machine.
1266
1267 -msolaris
1268 Generate code for Solaris.
1269
1270 -mno-solaris
1271 Do not generate code for Solaris.
1272
1273 -nops=count
1274 If an alignment directive inserts more than count nops, put a
1275 branch at the beginning to skip execution of the nops.
1276
1277 See the info pages for documentation of the RX-specific options.
1278
1279 The following options are available when as is configured for the s390
1280 processor family.
1281
1282 -m31
1283 -m64
1284 Select the word size, either 31/32 bits or 64 bits.
1285
1286 -mesa
1287 -mzarch
1288 Select the architecture mode, either the Enterprise System
1289 Architecture (esa) or the z/Architecture mode (zarch).
1290
1291 -march=processor
1292 Specify which s390 processor variant is the target, g6, g6, z900,
1293 z990, z9-109, z9-ec, z10, z196, zEC12, or z13.
1294
1295 -mregnames
1296 -mno-regnames
1297 Allow or disallow symbolic names for registers.
1298
1299 -mwarn-areg-zero
1300 Warn whenever the operand for a base or index register has been
1301 specified but evaluates to zero.
1302
1303 The following options are available when as is configured for a
1304 TMS320C6000 processor.
1305
1306 -march=arch
1307 Enable (only) instructions from architecture arch. By default, all
1308 instructions are permitted.
1309
1310 The following values of arch are accepted: "c62x", "c64x", "c64x+",
1311 "c67x", "c67x+", "c674x".
1312
1313 -mdsbt
1314 -mno-dsbt
1315 The -mdsbt option causes the assembler to generate the
1316 "Tag_ABI_DSBT" attribute with a value of 1, indicating that the
1317 code is using DSBT addressing. The -mno-dsbt option, the default,
1318 causes the tag to have a value of 0, indicating that the code does
1319 not use DSBT addressing. The linker will emit a warning if objects
1320 of different type (DSBT and non-DSBT) are linked together.
1321
1322 -mpid=no
1323 -mpid=near
1324 -mpid=far
1325 The -mpid= option causes the assembler to generate the
1326 "Tag_ABI_PID" attribute with a value indicating the form of data
1327 addressing used by the code. -mpid=no, the default, indicates
1328 position-dependent data addressing, -mpid=near indicates position-
1329 independent addressing with GOT accesses using near DP addressing,
1330 and -mpid=far indicates position-independent addressing with GOT
1331 accesses using far DP addressing. The linker will emit a warning
1332 if objects built with different settings of this option are linked
1333 together.
1334
1335 -mpic
1336 -mno-pic
1337 The -mpic option causes the assembler to generate the "Tag_ABI_PIC"
1338 attribute with a value of 1, indicating that the code is using
1339 position-independent code addressing, The "-mno-pic" option, the
1340 default, causes the tag to have a value of 0, indicating position-
1341 dependent code addressing. The linker will emit a warning if
1342 objects of different type (position-dependent and position-
1343 independent) are linked together.
1344
1345 -mbig-endian
1346 -mlittle-endian
1347 Generate code for the specified endianness. The default is little-
1348 endian.
1349
1350 The following options are available when as is configured for a TILE-Gx
1351 processor.
1352
1353 -m32 | -m64
1354 Select the word size, either 32 bits or 64 bits.
1355
1356 -EB | -EL
1357 Select the endianness, either big-endian (-EB) or little-endian
1358 (-EL).
1359
1360 The following option is available when as is configured for a Visium
1361 processor.
1362
1363 -mtune=arch
1364 This option specifies the target architecture. If an attempt is
1365 made to assemble an instruction that will not execute on the target
1366 architecture, the assembler will issue an error message.
1367
1368 The following names are recognized: "mcm24" "mcm" "gr5" "gr6"
1369
1370 The following options are available when as is configured for an Xtensa
1371 processor.
1372
1373 --text-section-literals | --no-text-section-literals
1374 Control the treatment of literal pools. The default is
1375 --no-text-section-literals, which places literals in separate
1376 sections in the output file. This allows the literal pool to be
1377 placed in a data RAM/ROM. With --text-section-literals, the
1378 literals are interspersed in the text section in order to keep them
1379 as close as possible to their references. This may be necessary
1380 for large assembly files, where the literals would otherwise be out
1381 of range of the "L32R" instructions in the text section. Literals
1382 are grouped into pools following ".literal_position" directives or
1383 preceding "ENTRY" instructions. These options only affect literals
1384 referenced via PC-relative "L32R" instructions; literals for
1385 absolute mode "L32R" instructions are handled separately.
1386
1387 --auto-litpools | --no-auto-litpools
1388 Control the treatment of literal pools. The default is
1389 --no-auto-litpools, which in the absence of --text-section-literals
1390 places literals in separate sections in the output file. This
1391 allows the literal pool to be placed in a data RAM/ROM. With
1392 --auto-litpools, the literals are interspersed in the text section
1393 in order to keep them as close as possible to their references,
1394 explicit ".literal_position" directives are not required. This may
1395 be necessary for very large functions, where single literal pool at
1396 the beginning of the function may not be reachable by "L32R"
1397 instructions at the end. These options only affect literals
1398 referenced via PC-relative "L32R" instructions; literals for
1399 absolute mode "L32R" instructions are handled separately. When
1400 used together with --text-section-literals, --auto-litpools takes
1401 precedence.
1402
1403 --absolute-literals | --no-absolute-literals
1404 Indicate to the assembler whether "L32R" instructions use absolute
1405 or PC-relative addressing. If the processor includes the absolute
1406 addressing option, the default is to use absolute "L32R"
1407 relocations. Otherwise, only the PC-relative "L32R" relocations
1408 can be used.
1409
1410 --target-align | --no-target-align
1411 Enable or disable automatic alignment to reduce branch penalties at
1412 some expense in code size. This optimization is enabled by
1413 default. Note that the assembler will always align instructions
1414 like "LOOP" that have fixed alignment requirements.
1415
1416 --longcalls | --no-longcalls
1417 Enable or disable transformation of call instructions to allow
1418 calls across a greater range of addresses. This option should be
1419 used when call targets can potentially be out of range. It may
1420 degrade both code size and performance, but the linker can
1421 generally optimize away the unnecessary overhead when a call ends
1422 up within range. The default is --no-longcalls.
1423
1424 --transform | --no-transform
1425 Enable or disable all assembler transformations of Xtensa
1426 instructions, including both relaxation and optimization. The
1427 default is --transform; --no-transform should only be used in the
1428 rare cases when the instructions must be exactly as specified in
1429 the assembly source. Using --no-transform causes out of range
1430 instruction operands to be errors.
1431
1432 --rename-section oldname=newname
1433 Rename the oldname section to newname. This option can be used
1434 multiple times to rename multiple sections.
1435
1436 --trampolines | --no-trampolines
1437 Enable or disable transformation of jump instructions to allow
1438 jumps across a greater range of addresses. This option should be
1439 used when jump targets can potentially be out of range. In the
1440 absence of such jumps this option does not affect code size or
1441 performance. The default is --trampolines.
1442
1443 The following options are available when as is configured for a Z80
1444 family processor.
1445
1446 -z80
1447 Assemble for Z80 processor.
1448
1449 -r800
1450 Assemble for R800 processor.
1451
1452 -ignore-undocumented-instructions
1453 -Wnud
1454 Assemble undocumented Z80 instructions that also work on R800
1455 without warning.
1456
1457 -ignore-unportable-instructions
1458 -Wnup
1459 Assemble all undocumented Z80 instructions without warning.
1460
1461 -warn-undocumented-instructions
1462 -Wud
1463 Issue a warning for undocumented Z80 instructions that also work on
1464 R800.
1465
1466 -warn-unportable-instructions
1467 -Wup
1468 Issue a warning for undocumented Z80 instructions that do not work
1469 on R800.
1470
1471 -forbid-undocumented-instructions
1472 -Fud
1473 Treat all undocumented instructions as errors.
1474
1475 -forbid-unportable-instructions
1476 -Fup
1477 Treat undocumented Z80 instructions that do not work on R800 as
1478 errors.
1479
1481 gcc(1), ld(1), and the Info entries for binutils and ld.
1482
1484 Copyright (c) 1991-2015 Free Software Foundation, Inc.
1485
1486 Permission is granted to copy, distribute and/or modify this document
1487 under the terms of the GNU Free Documentation License, Version 1.3 or
1488 any later version published by the Free Software Foundation; with no
1489 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
1490 Texts. A copy of the license is included in the section entitled "GNU
1491 Free Documentation License".
1492
1493
1494
1495binutils-2.26 2016-01-25 AS(1)