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