xref: /netbsd-src/external/gpl3/binutils/dist/gas/NEWS (revision cb63e24e8d6aae7ddac1859a9015f48b1d8bd90e)
1-*- text -*-
2
3Changes in 2.42:
4
5* Add support for the AArch64 Scalable Vector Extension version 2.1 (SVE2.1).
6
7* Add support for the AArch64 Scalable Matrix Extension version 2.1 (SME2.1).
8
9* Add support for the AArch64 BFloat16 to BFloat16 arithmetic for SVE2 and SME2
10  (B16B16).
11
12* Add support for the AArch64 Reliability, Availability and Serviceability
13  extension v2 (RASv2).
14
15* Add support for the AArch64 128-bit Atomic Instructions (LSE128).
16
17* Add support for the AArch64 Guarded Control Stack (GCS).
18
19* Add support for the AArch64 Check Feature Status Extension (CHK).
20
21* Add support for the AArch64 Enhanced Speculation Restriction Instructions
22  (SPECRES2).
23
24* Add support for the AArch64 Load-Acquire RCpc instructions version 3 (LRCPC3).
25
26* Add support for the AArch64 Translation Hardening Extension (THE).
27
28* Add support for the AArch64 Instruction Trace Extension (ITE).
29
30* Add support for the AArch64 Translation Hardening Extension (THE).
31
32* Add support for the AArch64 128-bit page table descriptors (D128).
33
34* Add support for the AArch64 XS memory attribute (XS).
35
36* Add support for '+fcma', '+jscvt', '+frintts', '+flagm2', '+rcpc2' and
37  '+wfxt' flags to enable existing AArch64 instructions.
38
39* Add support for 'armv8.9-a' and 'armv9.4-a' for -march in AArch64 GAS.
40
41* Add support for 'armv8.9-a' and 'armv9.4-a' for -march in Arm GAS.
42
43* Add support for Cortex-A520, Cortex-A720, Cortex-X3 and Cortex-X4 for
44  AArch64.
45
46* Experimental support in GAS to synthesize CFI for ABI-conformant,
47  hand-written asm using the new command line option --scfi=experimental on
48  x86-64.  Only System V AMD64 ABI is supported.
49
50* Initial support for Intel APX: 32 GPRs, NDD, PUSH2/POP2 and PUSHP/POPP.
51
52* Add support for Intel USER_MSR instructions.
53
54* Add support for Intel AVX10.1.
55
56* Add support for Intel PBNDKB instructions.
57
58* Add support for Intel SM4 instructions.
59
60* Add support for Intel SM3 instructions.
61
62* Add support for Intel SHA512 instructions.
63
64* Add support for Intel AVX-VNNI-INT16 instructions.
65
66* On RISC-V macro instructions expanding to AUIPC and a load, store, or branch
67  no longer accept x0 as an intermediate and/or destination register.
68
69* Add support for RISC-V T-Head extensions (XTheadVector, XTheadZvlsseg
70  and XTheadZvamo) from version 2.3.0 of the T-Head ISA manual.
71
72* Add support for RISC-V CORE-V extensions (XCVmac, XCValu) with version 1.0.
73
74* Add support for RISC-V SiFive VCIX extension (XSfVcp) with version 1.0.
75
76* The BPF assembler now uses semi-colon (;) to separate statements, and
77  therefore they cannot longer be used to begin line comments. This matches the
78  behavior of the clang/LLVM BPF assembler.
79
80* The BPF assembler now allows using both hash (#) and double slash (//) to
81  begin line comments.
82
83* Add support for LoongArch v1.10 new instructions: estimated reciprocal
84  instructions, sub-word atomic instructions, atomic CAS instructions,
85  16-byte store-conditional instruction, load-linked instructions with
86  acquire semantics, and store-conditional instructions with release
87  semantics.
88
89* The %call36 relocation operator, along with the pseudo-instructions
90  call36 and tail36, are now usable with the LoongArch "medium" code
91  model, allowing text sections up to 128 GiB.
92
93* TLS descriptors (TLSDESC) are now supported on LoongArch. This includes
94  the following new relocation operators: %desc_pc_hi20, %desc_pc_lo12,
95  %desc_ld, and %desc_call, and the la.tls.desc pseudo-instruction.
96
97* TLS LE relaxation is now supported on LoongArch. New relocation
98  operators %le_hi20_r, %le_lo12r, and %le_add_r are now available.
99
100* Add support for LoongArch branch relaxation: a conditional branch with
101  destination out of its immediate operand range, but still within
102  a "b"'s range, is now assembled as an inverted branch and a "b". This
103  works around the unreliable branch offset estimation of the compiler
104  when .align directive is encoded into a long NOP sequence with an
105  R_LARCH_RELAX by the assembler.
106
107* Symbol or label names in LoongArch assembly can now be spelled with
108  double-quotes.
109
110Changes in 2.41:
111
112* Add support for the KVX instruction set.
113
114* Add support for Intel FRED instructions.
115
116* Add support for Intel LKGS instructions.
117
118* Add support for Intel AMX-COMPLEX instructions.
119
120* Add SME2 support to the AArch64 port.
121
122* A new .insn directive is recognized by x86 gas.
123
124* Add support for LoongArch LSX instructions.
125
126* Add support for LoongArch LASX instructions.
127
128* Add support for LoongArch LVZ instructions.
129
130* Add support for LoongArch LBT instructions.
131
132* Initial LoongArch support for linker relaxation has been added.
133
134* Deprecate the LoongArch register aliases $v0, $v1, $x, $fv0 and $fv1.
135
136Changes in 2.40:
137
138* Add support for Intel RAO-INT instructions.
139
140* Add support for Intel AVX-NE-CONVERT instructions.
141
142* Add support for Intel MSRLIST instructions.
143
144* Add support for Intel WRMSRNS instructions.
145
146* Add support for Intel CMPccXADD instructions.
147
148* Add support for Intel AVX-VNNI-INT8 instructions.
149
150* Add support for Intel AVX-IFMA instructions.
151
152* Add support for Intel PREFETCHI instructions.
153
154* Add support for Intel AMX-FP16 instructions.
155
156* gas now supports --compress-debug-sections=zstd to compress
157  debug sections with zstd.
158
159* Add --enable-default-compressed-debug-sections-algorithm={zlib,zstd}
160  that selects the default compression algorithm
161  for --enable-compressed-debug-sections.
162
163* Add support for various T-Head extensions (XTheadBa, XTheadBb, XTheadBs,
164  XTheadCmo, XTheadCondMov, XTheadFMemIdx, XTheadFmv, XTheadInt, XTheadMemIdx,
165  XTheadMemPair, XTheadMac, and XTheadSync) from version 2.0 of the T-Head
166  ISA manual, which are implemented in the Allwinner D1.
167
168* Add support for the RISC-V Zawrs extension, version 1.0-rc4.
169
170* Add support for Cortex-X1C for Arm.
171
172* New command line option --gsframe to generate SFrame unwind information
173  on x86_64 and aarch64 targets.
174
175Changes in 2.39:
176
177* Remove (rudimentary) support for the x86-64 sub-architectures Intel L1OM and
178  Intel K1OM.
179
180* Add support for the RISC-V Zicbop, Zicbom, and Zicboz extensions, version
181  1.0-fd39d01.
182
183* Add support for the RISC-V Zfh extension, version 1.0.
184
185* Add support for the Zhinx extension, version 1.0.0-rc.
186
187* Add support for the RISC-V H extension.
188
189* Add support for the RISC-V Zfhmin extension, version 1.0, and Zhinxmin
190  extension, version 1.0.0-rc.
191
192Changes in 2.38:
193
194* Add support for AArch64 system registers that were missing in previous
195  releases.
196
197* Add support for the LoongArch instruction set.
198
199* Add a command-line option, -muse-unaligned-vector-move, for x86 target
200  to encode aligned vector move as unaligned vector move.
201
202* Add support for Cortex-R52+ for Arm.
203
204* Add support for Cortex-A510, Cortex-A710, Cortex-X2 for AArch64.
205
206* Add support for Cortex-A710 for Arm.
207
208* Add support for Scalable Matrix Extension (SME) for AArch64.
209
210* The --multibyte-handling=[allow|warn|warn-sym-only] option tells the
211  assembler what to when it encoutners multibyte characters in the input.  The
212  default is to allow them.  Setting the option to "warn" will generate a
213  warning message whenever any multibyte character is encountered.  Using the
214  option to "warn-sym-only" will make the assembler generate a warning whenever a
215  symbol is defined containing multibyte characters.  (References to undefined
216  symbols will not generate warnings).
217
218* Outputs of .ds.x directive and .tfloat directive with hex input from
219  x86 assembler have been reduced from 12 bytes to 10 bytes to match the
220  output of .tfloat directive.
221
222* Add support for 'armv8.8-a', 'armv9-a', 'armv9.1-a', 'armv9.2-a' and
223  'armv9.3-a' for -march in AArch64 GAS.
224
225* Add support for 'armv8.7-a', 'armv8.8-a', 'armv9-a', 'armv9.1-a',
226  'armv9.2-a' and 'armv9.3-a' for -march in Arm GAS.
227
228* Add support for Intel AVX512_FP16 instructions.
229
230* Add support for the RISC-V scalar crypto extension, version 1.0.0.
231
232* Add support for the RISC-V vector extension, version 1.0.
233
234* Add support for the Z{f,d,q}inx extensions, version 1.0.0-rc.
235
236* Add support for the RISC-V svinval extension, version 1.0.
237
238* Add support for the RISC-V hypervisor extension, as defined by Privileged
239  Specification 1.12.
240
241Changes in 2.37:
242
243* arm-symbianelf support removed.
244
245* Add support for Realm Management Extension (RME) for AArch64.
246
247* Add support for the Zba, Zbb, Zbc, and Zbs subsets of the RISC-V
248  bit manipulation extension, version 0.93.
249
250Changes in 2.36:
251
252* Add support for Intel AVX VNNI instructions.
253
254* Add support for Intel HRESET instruction.
255
256* Add support for Intel UINTR instructions.
257
258* Support non-absolute segment values for i386 lcall and ljmp.
259
260* When setting the link order attribute of ELF sections, it is now possible to
261  use a numeric section index instead of symbol name.
262
263* Add support for Cortex-A78, Cortex-A78AE, Cortex-A78C and Cortex-X1 for
264  AArch64 and ARM.
265  Add support for Cortex-R82, Neoverse V1, and Neoverse N2 for ARM.
266
267* Add support for ETMv4 (Embedded Trace Macrocell), ETE (Embedded Trace
268  Extension), TRBE (Trace Buffer Extension)and BRBE (Branch Record Buffer
269  Extension) system registers for AArch64.
270
271* Add support for Armv8-R and Armv8.7-A AArch64.
272
273* Add support for DSB memory nXS barrier, WFET and WFIT instruction for Armv8.7
274  AArch64.
275
276* Add support for +flagm feature for -march in Armv8.4 AArch64.
277
278* Add support for +ls64 feature for -march in Armv8.7 AArch64. Add atomic
279  64-byte load/store instructions for this feature.
280
281* Add support for +pauth (Pointer Authentication) feature for -march in
282  AArch64.
283
284* Add support for Intel TDX instructions.
285
286* Add support for Intel Key Locker instructions.
287
288* Added a .nop directive to generate a single no-op instruction in a target
289  neutral manner.  This instruction does have an effect on DWARF line number
290  generation, if that is active.
291
292* Removed --reduce-memory-overheads and --hash-size as gas now
293  uses hash tables that can be expand and shrink automatically.
294
295* Add {disp16} pseudo prefix to x86 assembler.
296
297* Add support for Intel AMX instructions.
298
299* Configure with --enable-x86-used-note by default for Linux/x86.
300
301* Add support for the SHF_GNU_RETAIN flag, which can be applied to
302  sections using the 'R' flag in the .section directive.
303  SHF_GNU_RETAIN specifies that the section should not be garbage
304  collected by the linker.  It requires the GNU or FreeBSD ELF OSABIs.
305
306* Add support for the RISC-V Zihintpause extension.
307
308Changes in 2.35:
309
310* X86 NaCl target support is removed.
311
312* Extend .symver directive to update visibility of the original symbol
313  and assign one original symbol to different versioned symbols.
314
315* Add support for Intel SERIALIZE and TSXLDTRK instructions.
316
317* Add -mlfence-after-load=, -mlfence-before-indirect-branch= and
318  -mlfence-before-ret= options to x86 assembler to help mitigate
319  CVE-2020-0551.
320
321* Add --gdwarf-5 option to the assembler to generate DWARF 5 debug output
322  (if such output is being generated).  Added the ability to generate
323  version 5 .debug_line sections.
324
325* Add -mbig-obj support to i386 MingW targets.
326
327* Add support for the -mriscv-isa-version argument, to select the version of
328  the RISC-V ISA specification used when assembling.
329
330* Remove support for the RISC-V privileged specification, version 1.9.
331
332Changes in 2.34:
333
334* Add -malign-branch-boundary=NUM, -malign-branch=TYPE[+TYPE...],
335  -malign-branch-prefix-size=NUM and -mbranches-within-32B-boundaries
336  options to x86 assembler to align branches within a fixed boundary
337  with segment prefixes or NOPs.
338
339* Add support for Zilog eZ80 and Zilog Z180 CPUs.
340
341* Add support for z80-elf target.
342
343* Add support for relocation of each byte or word of multibyte value to Z80
344  targets (just use right shift to 0, 8, 16, or 24 bits or AND operation
345  with 0xff/0xffff mask): ld a, label >> 16 \ ld hl, label & 0xffff
346
347* Add SDCC support for Z80 targets.
348
349Changes in 2.33:
350
351* Add support for the Arm Scalable Vector Extension version 2 (SVE2)
352  instructions.
353
354* Add support for the Arm Transactional Memory Extension (TME)
355  instructions.
356
357* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
358  instructions.
359
360* For MIPS, Add -m[no-]fix-loongson3-llsc option to fix (or not) Loongson3
361  LLSC Errata.  Add a --enable-mips-fix-loongson3-llsc=[yes|no] configure
362  time option to set the default behavior. Set the default if the configure
363  option is not used to "no".
364
365* Add support for the Arm Cortex-A76AE, Cortex-A77 and Cortex-M35P
366  processors.
367
368* Add support for the AArch64 Cortex-A34, Cortex-A65, Cortex-A65AE,
369  Cortex-A76AE, and Cortex-A77 processors.
370
371* Add .float16 directive for both Arm and AArch64 to allow encoding of 16-bit
372  floating point literals.  Add .float16_format directive and
373  -mfp16-format=[ieee|alternative] option for Arm to control the format of the
374  encoding.
375
376* Add --gdwarf-cie-version command line flag.  This allows control over which
377  version of DWARF CIE the assembler creates.
378
379Changes in 2.32:
380
381* Add -mvexwig=[0|1] option to x86 assembler to control encoding of
382  VEX.W-ignored (WIG) VEX instructions.
383
384* Add -mx86-used-note=[yes|no] option to generate (or not) x86 GNU property
385  notes.  Add a --enable-x86-used-note configure time option to set the
386  default behavior.  Set the default if the configure option is not used
387  to "no".
388
389* Add support for the MIPS Loongson EXTensions R2 (EXT2) instructions.
390
391* Add support for the MIPS Loongson EXTensions (EXT) instructions.
392
393* Add support for the MIPS Loongson Content Address Memory (CAM) ASE.
394
395* Add support for the C-SKY processor series.
396
397* Add support for the MIPS Loongson MultiMedia extensions Instructions (MMI)
398  ASE.
399
400Changes in 2.31:
401
402* The ADR and ADRL pseudo-instructions supported by the ARM assembler
403  now only set the bottom bit of the address of thumb function symbols
404  if the -mthumb-interwork command line option is active.
405
406* Add support for the MIPS Global INValidate (GINV) ASE.
407
408* Add support for the MIPS Cyclic Redudancy Check (CRC) ASE.
409
410* Add support for the Freescale S12Z architecture.
411
412* Add --generate-missing-build-notes=[yes|no] option to create (or not) GNU
413  Build Attribute notes if none are present in the input sources.  Add a
414  --enable-generate-build-notes=[yes|no] configure time option to set the
415  default behaviour.  Set the default if the configure option is not used
416  to "no".
417
418* Remove -mold-gcc command-line option for x86 targets.
419
420* Add -O[2|s] command-line options to x86 assembler to enable alternate
421  shorter instruction encoding.
422
423* Add support for .nops directive.  It is currently supported only for
424  x86 targets.
425
426* Add support for the .insn directive on RISC-V targets.
427
428Changes in 2.30:
429
430* Add support for loaction views in DWARF debug line information.
431
432Changes in 2.29:
433
434* Add support for ELF SHF_GNU_MBIND.
435
436* Add support for the WebAssembly file format and wasm32 ELF conversion.
437
438* PowerPC gas now checks that the correct register class is used in
439  instructions.  For instance, "addi %f4,%cr3,%r31" warns three times
440  that the registers are invalid.
441
442* Add support for the Texas Instruments PRU processor.
443
444* Support for the ARMv8-R architecture and Cortex-R52 processor has been
445  added to the ARM port.
446
447Changes in 2.28:
448
449* Add support for the RISC-V architecture.
450
451* Add support for the ARM Cortex-M23 and Cortex-M33 processors.
452
453Changes in 2.27:
454
455* Default to --enable-compressed-debug-sections=gas for Linux/x86 targets.
456
457* Add --no-pad-sections to stop the assembler from padding the end of output
458  sections up to their alignment boundary.
459
460* Support for the ARMv8-M architecture has been added to the ARM port.  Support
461  for the ARMv8-M Security and DSP Extensions has also been added to the ARM
462  port.
463
464* ARC backend accepts .extInstruction, .extCondCode, .extAuxRegister, and
465  .extCoreRegister pseudo-ops that allow an user to define custom
466  instructions, conditional codes, auxiliary and core registers.
467
468* Add a configure option --enable-elf-stt-common to decide whether ELF
469  assembler should generate common symbols with the STT_COMMON type by
470  default.  Default to no.
471
472* New command-line option --elf-stt-common= for ELF targets to control
473  whether to generate common symbols with the STT_COMMON type.
474
475* Add ability to set section flags and types via numeric values for ELF
476  based targets.
477
478* Add a configure option --enable-x86-relax-relocations to decide whether
479  x86 assembler should generate relax relocations by default.  Default to
480  yes, except for x86 Solaris targets older than Solaris 12.
481
482* New command-line option -mrelax-relocations= for x86 target to control
483  whether to generate relax relocations.
484
485* New command-line option -mfence-as-lock-add=yes for x86 target to encode
486  lfence, mfence and sfence as "lock addl $0x0, (%[re]sp)".
487
488* Add assembly-time relaxation option for ARC cpus.
489
490* Add --with-cpu=TYPE configure option for ARC gas.  This allows the default
491  cpu type to be adjusted at configure time.
492
493Changes in 2.26:
494
495* Add a configure option --enable-compressed-debug-sections={all,gas} to
496  decide whether DWARF debug sections should be compressed by default.
497
498* Add support for the ARC EM/HS, and ARC600/700 architectures.  Remove
499  assembler support for Argonaut RISC architectures.
500
501* Symbol and label names can now be enclosed in double quotes (") which allows
502  them to contain characters that are not part of valid symbol names in high
503  level languages.
504
505* Added the correctly spelled -march=armv6kz, for ARMv6KZ support.  The
506  previous spelling, -march=armv6zk, is still accepted.
507
508* Support for the ARMv8.1 architecture has been added to the Aarch64 port.
509  Support for the individual ARMv8.1 Adv.SIMD, LOR and PAN architecture
510  extensions has also been added to the Aarch64 port.
511
512* Support for the ARMv8.1 architecture has been added to the ARM port.  Support
513  for the individual ARMv8.1 Adv.SIMD and PAN architecture extensions has also
514  been added to the ARM port.
515
516* Extend --compress-debug-sections option to support
517  --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
518  targets.
519
520* --compress-debug-sections is turned on for Linux/x86 by default.
521
522Changes in 2.25:
523
524* Add support for the AVR Tiny microcontrollers.
525
526* Replace support for openrisc and or32 with support for or1k.
527
528* Enhanced the ARM port to accept the assembler output from the CodeComposer
529  Studio tool.  Support is enabled via the new command-line option -mccs.
530
531* Add support for the Andes NDS32.
532
533Changes in 2.24:
534
535* Add support for the Texas Instruments MSP430X processor.
536
537* Add -gdwarf-sections command-line option to enable per-code-section
538  generation of DWARF .debug_line sections.
539
540* Add support for Altera Nios II.
541
542* Add support for the Imagination Technologies Meta processor.
543
544* Add support for the v850e3v5.
545
546* Remove assembler support for MIPS ECOFF targets.
547
548Changes in 2.23:
549
550* Add support for the 64-bit ARM architecture: AArch64.
551
552* Add support for S12X processor.
553
554* Add support for the VLE extension to the PowerPC architecture.
555
556* Add support for the Freescale XGATE architecture.
557
558* Add support for .bundle_align_mode, .bundle_lock, and .bundle_unlock
559  directives.  These are currently available only for x86 and ARM targets.
560
561* Add support for the Renesas RL78 architecture.
562
563* Add support for the Adapteva EPIPHANY architecture.
564
565* For x86, allow 'rep bsf', 'rep bsr', and 'rep ret' syntax.
566
567Changes in 2.22:
568
569* Add support for the Tilera TILEPro and TILE-Gx architectures.
570
571Changes in 2.21:
572
573* Gas no longer requires doubling of ampersands in macros.
574
575* Add support for the TMS320C6000 (TI C6X) processor family.
576
577* GAS now understands an extended syntax in the .section directive flags
578  for COFF targets that allows the section's alignment to be specified.  This
579  feature has also been backported to the 2.20 release series, starting with
580  2.20.1.
581
582* Add support for the Renesas RX processor.
583
584* New command-line option, --compress-debug-sections, which requests
585  compression of DWARF debug information sections in the relocatable output
586  file.  Compressed debug sections are supported by readelf, objdump, and
587  gold, but not currently by Gnu ld.
588
589Changes in 2.20:
590
591* Added support for v850e2 and v850e2v3.
592
593* GNU/Linux targets now supports "gnu_unique_object" as a value in the .type
594  pseudo op.  It marks the symbol as being globally unique in the entire
595  process.
596
597* ARM assembler now supports .inst[.nw] pseudo-ops to insert opcodes specified
598  in binary rather than text.
599
600* Add support for common symbol alignment to PE formats.
601
602* Add support for the new discriminator column in the DWARF line table,
603  with a discriminator operand for the .loc directive.
604
605* Add support for Sunplus score architecture.
606
607* The .type pseudo-op now accepts a type of STT_GNU_IFUNC which can be used to
608  indicate that if the symbol is the target of a relocation, its value should
609  not be use.  Instead the function should be invoked and its result used as
610  the value.
611
612* Add support for Lattice Mico32 (lm32) architecture.
613
614* Add support for Xilinx MicroBlaze architecture.
615
616Changes in 2.19:
617
618* New pseudo op .cfi_val_encoded_addr, to record constant addresses in unwind
619  tables without runtime relocation.
620
621* New command-line option, -h-tick-hex, for sh, m32c, and h8/300 targets, which
622  adds compatibility with H'00 style hex constants.
623
624* New command-line option, -msse-check=[none|error|warning], for x86
625  targets.
626
627* New sub-option added to the assembler's -a command-line switch to
628  generate a listing output.  The 'g' sub-option will insert into the listing
629  various information about the assembly, such as assembler version, the
630  command-line options used, and a time stamp.
631
632* New command-line option -msse2avx for x86 target to encode SSE
633  instructions with VEX prefix.
634
635* Add Intel XSAVE, EPT, MOVBE, AES, PCLMUL, AVX/FMA support for x86 target.
636
637* New command-line options, -march=CPU[,+EXTENSION...], -mtune=CPU,
638  -mmnemonic=[att|intel], -msyntax=[att|intel], -mindex-reg,
639  -mnaked-reg and -mold-gcc, for x86 targets.
640
641* Support for generating wide character strings has been added via the new
642  pseudo ops: .string16, .string32 and .string64.
643
644* Support for SSE5 has been added to the i386 port.
645
646Changes in 2.18:
647
648* The GAS sources are now released under the GPLv3.
649
650* Support for the National Semiconductor CR16 target has been added.
651
652* Added gas .reloc pseudo.  This is a low-level interface for creating
653  relocations.
654
655* Add support for x86_64 PE+ target.
656
657* Add support for Score target.
658
659Changes in 2.17:
660
661* Support for the Infineon XC16X has been added by KPIT Cummins Infosystems.
662
663* Support for ms2 architecture has been added.
664
665* Support for the Z80 processor family has been added.
666
667* Add support for the "@<file>" syntax to the command line, so that extra
668  switches can be read from <file>.
669
670* The SH target supports a new command-line switch --enable-reg-prefix which,
671  if enabled, will allow register names to be optionally prefixed with a $
672  character.  This allows register names to be distinguished from label names.
673
674* Macros with a variable number of arguments are now supported. See the
675  documentation for how this works.
676
677* Added --reduce-memory-overheads switch to reduce the size of the hash
678  tables used, at the expense of longer assembly times, and
679  --hash-size=<NUMBER> to set the size of the hash tables used by gas.
680
681* Macro names and macro parameter names can now be any identifier that would
682  also be legal as a symbol elsewhere. For macro parameter names, this is
683  known to cause problems in certain sources when the respective target uses
684  characters inconsistently, and thus macro parameter references may no longer
685  be recognized as such (see the documentation for details).
686
687* Support the .f_floating, .d_floating, .g_floating and .h_floating directives
688  for the VAX target in order to be more compatible with the VAX MACRO
689  assembler.
690
691* New command-line option -mtune=[itanium1|itanium2] for IA64 targets.
692
693Changes in 2.16:
694
695* Redefinition of macros now results in an error.
696
697* New command-line option -mhint.b=[ok|warning|error] for IA64 targets.
698
699* New command-line option -munwind-check=[warning|error] for IA64
700  targets.
701
702* The IA64 port now uses automatic dependency violation removal as its default
703  mode.
704
705* Port to MAXQ processor contributed by HCL Tech.
706
707* Added support for generating unwind tables for ARM ELF targets.
708
709* Add a -g command-line option to generate debug information in the target's
710  preferred debug format.
711
712* Support for the crx-elf target added.
713
714* Support for the sh-symbianelf target added.
715
716* Added a pseudo-op (.secrel32) to generate 32 bit section relative relocations
717  on pe[i]-i386; required for this target's DWARF 2 support.
718
719* Support for Motorola MCF521x/5249/547x/548x added.
720
721* Support for ColdFire EMAC instructions added and Motorola syntax for MAC/EMAC
722  instrucitons.
723
724* New command-line option -mno-shared for MIPS ELF targets.
725
726* New command-line option --alternate and pseudo-ops .altmacro and .noaltmacro
727  added to enter (and leave) alternate macro syntax mode.
728
729Changes in 2.15:
730
731* The MIPS -membedded-pic option (Embedded-PIC code generation) is
732  deprecated and will be removed in a future release.
733
734* Added PIC m32r Linux (ELF) and support to M32R assembler.
735
736* Added support for ARM V6.
737
738* Added support for sh4a and variants.
739
740* Support for Renesas M32R2 added.
741
742* Limited support for Mapping Symbols as specified in the ARM ELF
743  specification has been added to the arm assembler.
744
745* On ARM architectures, added a new gas directive ".unreq" that undoes
746  definitions created by ".req".
747
748* Support for Motorola ColdFire MCF528x added.
749
750* Added --gstabs+ switch to enable the generation of STABS debug format
751  information with GNU extensions.
752
753* Added support for MIPS64 Release 2.
754
755* Added support for v850e1.
756
757* Added -n switch for x86 assembler.  By default, x86 GAS replaces
758  multiple nop instructions used for alignment within code sections
759  with multi-byte nop instructions such as leal 0(%esi,1),%esi.  This
760  switch disables the optimization.
761
762* Removed -n option from MIPS assembler.  It was not useful, and confused the
763  existing -non_shared option.
764
765Changes in 2.14:
766
767* Added support for MIPS32 Release 2.
768
769* Added support for Xtensa architecture.
770
771* Support for Intel's iWMMXt processor (an ARM variant) added.
772
773* An assembler test generator has been contributed and an example file that
774  uses it (gas/testsuite/gas/all/test-gen.c and test-exmaple.c).
775
776* Support for SH2E added.
777
778* GASP has now been removed.
779
780* Support for Texas Instruments TMS320C4x and TMS320C3x series of
781  DSP's contributed by Michael Hayes and Svein E. Seldal.
782
783* Support for the Ubicom IP2xxx microcontroller added.
784
785Changes in 2.13:
786
787* Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400
788  and FR500 included.
789
790* Support for DLX processor added.
791
792* GASP has now been deprecated and will be removed in a future release.  Use
793  the macro facilities in GAS instead.
794
795* GASP now correctly parses floating point numbers. Unless the base is
796  explicitly specified, they are interpreted as decimal numbers regardless of
797  the currently specified base.
798
799Changes in 2.12:
800
801* Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
802
803* Support for the OpenRISC 32-bit embedded processor by OpenCores.
804
805* The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for
806  specifying the target instruction set.  The old method of specifying the
807  target processor has been deprecated, but is still accepted for
808  compatibility.
809
810* Support for the VFP floating-point instruction set has been added to
811  the ARM assembler.
812
813* New psuedo op: .incbin to include a set of binary data at a given point
814  in the assembly.  Contributed by Anders Norlander.
815
816* The MIPS assembler now accepts -march/-mtune. -mcpu has been deprecated
817  but still works for compatability.
818
819* The MIPS assembler no longer issues a warning by default when it
820  generates a nop instruction from a macro. The new command-line option
821  -n will turn on the warning.
822
823Changes in 2.11:
824
825* Support for PDP-11 and 2.11BSD a.out format, by Lars Brinkhoff.
826
827* x86 gas now supports the full Pentium4 instruction set.
828
829* Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs.
830
831* Support for Motorola 68HC11 and 68HC12.
832
833* Support for Texas Instruments TMS320C54x (tic54x).
834
835* Support for IA-64.
836
837* Support for i860, by Jason Eckhardt.
838
839* Support for CRIS (Axis Communications ETRAX series).
840
841* x86 gas has a new .arch pseudo op to specify the target CPU architecture.
842
843* x86 gas -q command-line option quietens warnings about register size changes
844  due to suffix, indirect jmp/call without `*', stand-alone prefixes, and
845  translating various deprecated floating point instructions.
846
847Changes in 2.10:
848
849* Support for the ARM msr instruction was changed to only allow an immediate
850  operand when altering the flags field.
851
852* Support for ATMEL AVR.
853
854* Support for IBM 370 ELF.  Somewhat experimental.
855
856* Support for numbers with suffixes.
857
858* Added support for breaking to the end of repeat loops.
859
860* Added support for parallel instruction syntax (DOUBLEBAR_PARALLEL).
861
862* New .elseif pseudo-op added.
863
864* New --fatal-warnings option.
865
866* picoJava architecture support added.
867
868* Motorola MCore 210 processor support added.
869
870* A new pseudo-op .intel_syntax has been implemented to allow gas to parse i386
871  assembly programs with intel syntax.
872
873* New pseudo-ops .func,.endfunc to aid in debugging user-written assembler code.
874
875* Added -gdwarf2 option to generate DWARF 2 debugging information.
876
877* Full 16-bit mode support for i386.
878
879* Greatly improved instruction operand checking for i386.  This change will
880  produce errors or warnings on incorrect assembly code that previous versions
881  of gas accepted.  If you get unexpected messages from code that worked with
882  older versions of gas, please double check the code before reporting a bug.
883
884* Weak symbol support added for COFF targets.
885
886* Mitsubishi D30V support added.
887
888* Texas Instruments c80 (tms320c80) support added.
889
890* i960 ELF support added.
891
892* ARM ELF support added.
893
894Changes in 2.9:
895
896* Texas Instruments c30 (tms320c30) support added.
897
898* The assembler now optimizes the exception frame information generated by egcs
899  and gcc 2.8.  The new --traditional-format option disables this optimization.
900
901* Added --gstabs option to generate stabs debugging information.
902
903* The -a option takes a new suboption, m (e.g., -alm) to expand macros in a
904  listing.
905
906* Added -MD option to print dependencies.
907
908Changes in 2.8:
909
910* BeOS support added.
911
912* MIPS16 support added.
913
914* Motorola ColdFire 5200 support added (configure for m68k and use -m5200).
915
916* Alpha/VMS support added.
917
918* m68k options --base-size-default-16, --base-size-default-32,
919  --disp-size-default-16, and --disp-size-default-32 added.
920
921* The alignment directives now take an optional third argument, which is the
922  maximum number of bytes to skip.  If doing the alignment would require
923  skipping more than the given number of bytes, the alignment is not done at
924  all.
925
926* The ELF assembler has a new pseudo-op, .symver, used for symbol versioning.
927
928* The -a option takes a new suboption, c (e.g., -alc), to skip false
929  conditionals in listings.
930
931* Added new pseudo-op, .equiv; it's like .equ, except that it is an error if
932  the symbol is already defined.
933
934Changes in 2.7:
935
936* The PowerPC assembler now allows the use of symbolic register names (r0,
937  etc.) if -mregnames is used.  Symbolic names preceded by a '%' (%r0, etc.)
938  can be used any time.  PowerPC 860 move to/from SPR instructions have been
939  added.
940
941* Alpha Linux (ELF) support added.
942
943* PowerPC ELF support added.
944
945* m68k Linux (ELF) support added.
946
947* i960 Hx/Jx support added.
948
949* i386/PowerPC gnu-win32 support added.
950
951* SCO ELF support added.  For OpenServer 5 targets (i386-unknown-sco3.2v5) the
952  default is to build COFF-only support.  To get a set of tools that generate
953  ELF (they'll understand both COFF and ELF), you must configure with
954  target=i386-unknown-sco3.2v5elf.
955
956* m88k-motorola-sysv3* support added.
957
958Changes in 2.6:
959
960* Gas now directly supports macros, without requiring GASP.
961
962* Gas now has an MRI assembler compatibility mode.  Use -M or --mri to select
963  MRI mode.  The pseudo-op ``.mri 1'' will switch into the MRI mode until the
964  ``.mri 0'' is seen; this can be convenient for inline assembler code.
965
966* Added --defsym SYM=VALUE option.
967
968* Added -mips4 support to MIPS assembler.
969
970* Added PIC support to Solaris and SPARC SunOS 4 assembler.
971
972Changes in 2.4:
973
974* Converted this directory to use an autoconf-generated configure script.
975
976* ARM support, from Richard Earnshaw.
977
978* Updated VMS support, from Pat Rankin, including considerably improved
979  debugging support.
980
981* Support for the control registers in the 68060.
982
983* Handles (ignores) a new directive ".this_GCC_requires_the_GNU_assembler", to
984  provide for possible future gcc changes, for targets where gas provides some
985  features not available in the native assembler.  If the native assembler is
986  used, it should become obvious pretty quickly what the problem is.
987
988* Usage message is available with "--help".
989
990* The GNU Assembler Preprocessor (gasp) is included.  (Actually, it was in 2.3
991  also, but didn't get into the NEWS file.)
992
993* Weak symbol support for a.out.
994
995* A bug in the listing code which could cause an infinite loop has been fixed.
996  Bugs in listings when generating a COFF object file have also been fixed.
997
998* Initial i386-svr4 PIC implementation from Eric Youngdale, based on code by
999  Paul Kranenburg.
1000
1001* Improved Alpha support.  Immediate constants can have a much larger range
1002  now. Support for the 21164 has been contributed by Digital.
1003
1004* Updated ns32k (pc532-mach, netbsd532) support from Ian Dall.
1005
1006Changes in 2.3:
1007
1008* Mach i386 support, by David Mackenzie and Ken Raeburn.
1009
1010* RS/6000 and PowerPC support by Ian Taylor.
1011
1012* VMS command scripts (make-gas.com, config-gas.com) have been worked on a bit,
1013  based on mail received from various people.  The `-h#' option should work
1014  again too.
1015
1016* HP-PA work, by Jeff Law.  Note, for the PA, gas-2.3 has been designed to work
1017  with gdb-4.12 and gcc-2.6.  As gcc-2.6 has not been released yet, a special
1018  version of gcc-2.5.8 has been patched to work with gas-2.3.  You can retrieve
1019  this special version of gcc-2.5.8 via anonymous ftp from jaguar.cs.utah.edu
1020  in the "dist" directory.
1021
1022* Vax support in gas fixed for BSD, so it builds and seems to run a couple
1023  simple tests okay.  I haven't put it through extensive testing.  (GNU make is
1024  currently required for BSD 4.3 builds.)
1025
1026* Support for the DEC Alpha, running OSF/1 (ECOFF format).  The gas support is
1027  based on code donated by CMU, which used an a.out-based format.  I'm afraid
1028  the alpha-a.out support is pretty badly mangled, and much of it removed;
1029  making it work will require rewriting it as BFD support for the format anyways.
1030
1031* Irix 5 support.
1032
1033* The test suites have been fixed up a bit, so that they should work with a
1034  couple different versions of expect and dejagnu.
1035
1036* Symbols' values are now handled internally as expressions, permitting more
1037  flexibility in evaluating them in some cases.  Some details of relocation
1038  handling have also changed, and simple constant pool management has been
1039  added, to make the Alpha port easier.
1040
1041* New option "--statistics" for printing out program run times.  This is
1042  intended to be used with the gcc "-Q" option, which prints out times spent in
1043  various phases of compilation.  (You should be able to get all of them
1044  printed out with "gcc -Q -Wa,--statistics", I think.)
1045
1046Changes in 2.2:
1047
1048* RS/6000 AIX and MIPS SGI Irix 5 support has been added.
1049
1050* Configurations that are still in development (and therefore are convenient to
1051  have listed in configure.in) still get rejected without a minor change to
1052  gas/Makefile.in, so people not doing development work shouldn't get the
1053  impression that support for such configurations is actually believed to be
1054  reliable.
1055
1056* The program name (usually "as") is printed when a fatal error message is
1057  displayed.  This should prevent some confusion about the source of occasional
1058  messages about "internal errors".
1059
1060* ELF support is falling into place.  Support for the 386 should be working.
1061  Support for SPARC Solaris is in.  HPPA support from Utah is being integrated.
1062
1063* Symbol values are maintained as expressions instead of being immediately
1064  boiled down to add-symbol, sub-symbol, and constant.  This permits slightly
1065  more complex calculations involving symbols whose values are not alreadey
1066  known.
1067
1068* DBX-style debugging info ("stabs") is now supported for COFF formats.
1069  If any stabs directives are seen in the source, GAS will create two new
1070  sections: a ".stab" and a ".stabstr" section.  The format of the .stab
1071  section is nearly identical to the a.out symbol format, and .stabstr is
1072  its string table.  For this to be useful, you must have configured GCC
1073  to generate stabs (by defining DBX_DEBUGGING_INFO), and must have a GDB
1074  that can use the stab sections (4.11 or later).
1075
1076* LynxOS, on i386 and m68k platforms, is now supported.  SPARC LynxOS
1077  support is in progress.
1078
1079Changes in 2.1:
1080
1081* Several small fixes for i386-aix (PS/2) support from Minh Tran-Le have been
1082  incorporated, but not well tested yet.
1083
1084* Altered the opcode table split for m68k; it should require less VM to compile
1085  with gcc now.
1086
1087* Some minor adjustments to add (Convergent Technologies') Miniframe support,
1088  suggested by Ronald Cole.
1089
1090* HPPA support (running OSF only, not HPUX) has been contributed by Utah.  This
1091  includes improved ELF support, which I've started adapting for SPARC Solaris
1092  2.x.  Integration isn't completely, so it probably won't work.
1093
1094* HP9000/300 support, donated by HP, has been merged in.
1095
1096* Ian Taylor has finished the MIPS ECOFF (Ultrix, Irix) support.
1097
1098* Better error messages for unsupported configurations (e.g., hppa-hpux).
1099
1100* Test suite framework is starting to become reasonable.
1101
1102Changes in 2.0:
1103
1104* Mostly bug fixes.
1105
1106* Some more merging of BFD and ELF code, but ELF still doesn't work.
1107
1108Changes in 1.94:
1109
1110* BFD merge is partly done.  Adventurous souls may try giving configure the
1111  "--with-bfd-assembler" option.  Currently, ELF format requires it, a.out
1112  format accepts it; SPARC CPU accepts it.  It's the default only for OS "elf"
1113  or "solaris".  (ELF isn't really supported yet.  It needs work.  I've got
1114  some code from Utah for HP-PA ELF, and from DG for m88k ELF, but they're not
1115  fully merged yet.)
1116
1117* The 68K opcode table has been split in half.  It should now compile under gcc
1118  without consuming ridiculous amounts of memory.
1119
1120* A couple data structures have been reduced in size.  This should result in
1121  saving a little bit of space at runtime.
1122
1123* Support for MIPS, from OSF and Ralph Campbell, has been merged in.  The OSF
1124  code provided ROSE format support, which I haven't merged in yet.  (I can
1125  make it available, if anyone wants to try it out.)  Ralph's code, for BSD
1126  4.4, supports a.out format.  We don't have ECOFF support in just yet; it's
1127  coming.
1128
1129* Support for the Hitachi H8/500 has been added.
1130
1131* VMS host and target support should be working now, thanks chiefly to Eric
1132  Youngdale.
1133
1134Changes in 1.93.01:
1135
1136* For m68k, support for more processors has been added: 68040, CPU32, 68851.
1137
1138* For i386, .align is now power-of-two; was number-of-bytes.
1139
1140* For m68k, "%" is now accepted before register names.  For COFF format, which
1141  doesn't use underscore prefixes for C labels, it is required, so variable "a0"
1142  can be distinguished from the register.
1143
1144* Last public release was 1.38.  Lots of configuration changes since then, lots
1145  of new CPUs and formats, lots of bugs fixed.
1146
1147
1148Copyright (C) 2012-2024 Free Software Foundation, Inc.
1149
1150Copying and distribution of this file, with or without modification,
1151are permitted in any medium without royalty provided the copyright
1152notice and this notice are preserved.
1153
1154Local variables:
1155fill-column: 79
1156End:
1157