Copyright update for binutils
[deliverable/binutils-gdb.git] / gas / NEWS
1 -*- text -*-
2
3 Changes in 2.26:
4
5 * Add a configure option --enable-compressed-debug-sections={all,gas} to
6 decide whether DWARF debug sections should be compressed by default.
7
8 * Add support for the ARC EM/HS, and ARC600/700 architectures. Remove
9 assembler support for Argonaut RISC architectures.
10
11 Changes in 2.26:
12
13 * Symbol and label names can now be enclosed in double quotes (") which allows
14 them to contain characters that are not part of valid symbol names in high
15 level languages.
16
17 * Added the correctly spelled -march=armv6kz, for ARMv6KZ support. The
18 previous spelling, -march=armv6zk, is still accepted.
19
20 * Support for the ARMv8.1 architecture has been added to the Aarch64 port.
21 Support for the individual ARMv8.1 Adv.SIMD, LOR and PAN architecture
22 extensions has also been added to the Aarch64 port.
23
24 * Support for the ARMv8.1 architecture has been added to the ARM port. Support
25 for the individual ARMv8.1 Adv.SIMD and PAN architecture extensions has also
26 been added to the ARM port.
27
28 * Extend --compress-debug-sections option to support
29 --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
30 targets.
31
32 * --compress-debug-sections is turned on for Linux/x86 by default.
33
34 Changes in 2.25:
35
36 * Add support for the AVR Tiny microcontrollers.
37
38 * Replace support for openrisc and or32 with support for or1k.
39
40 * Enhanced the ARM port to accept the assembler output from the CodeComposer
41 Studio tool. Support is enabled via the new command line option -mccs.
42
43 * Add support for the Andes NDS32.
44
45 Changes in 2.24:
46
47 * Add support for the Texas Instruments MSP430X processor.
48
49 * Add -gdwarf-sections command line option to enable per-code-section
50 generation of DWARF .debug_line sections.
51
52 * Add support for Altera Nios II.
53
54 * Add support for the Imagination Technologies Meta processor.
55
56 * Add support for the v850e3v5.
57
58 * Remove assembler support for MIPS ECOFF targets.
59
60 Changes in 2.23:
61
62 * Add support for the 64-bit ARM architecture: AArch64.
63
64 * Add support for S12X processor.
65
66 * Add support for the VLE extension to the PowerPC architecture.
67
68 * Add support for the Freescale XGATE architecture.
69
70 * Add support for .bundle_align_mode, .bundle_lock, and .bundle_unlock
71 directives. These are currently available only for x86 and ARM targets.
72
73 * Add support for the Renesas RL78 architecture.
74
75 * Add support for the Adapteva EPIPHANY architecture.
76
77 * For x86, allow 'rep bsf', 'rep bsr', and 'rep ret' syntax.
78
79 Changes in 2.22:
80
81 * Add support for the Tilera TILEPro and TILE-Gx architectures.
82
83 Changes in 2.21:
84
85 * Gas no longer requires doubling of ampersands in macros.
86
87 * Add support for the TMS320C6000 (TI C6X) processor family.
88
89 * GAS now understands an extended syntax in the .section directive flags
90 for COFF targets that allows the section's alignment to be specified. This
91 feature has also been backported to the 2.20 release series, starting with
92 2.20.1.
93
94 * Add support for the Renesas RX processor.
95
96 * New command line option, --compress-debug-sections, which requests
97 compression of DWARF debug information sections in the relocatable output
98 file. Compressed debug sections are supported by readelf, objdump, and
99 gold, but not currently by Gnu ld.
100
101 Changes in 2.20:
102
103 * Added support for v850e2 and v850e2v3.
104
105 * GNU/Linux targets now supports "gnu_unique_object" as a value in the .type
106 pseudo op. It marks the symbol as being globally unique in the entire
107 process.
108
109 * ARM assembler now supports .inst[.nw] pseudo-ops to insert opcodes specified
110 in binary rather than text.
111
112 * Add support for common symbol alignment to PE formats.
113
114 * Add support for the new discriminator column in the DWARF line table,
115 with a discriminator operand for the .loc directive.
116
117 * Add support for Sunplus score architecture.
118
119 * The .type pseudo-op now accepts a type of STT_GNU_IFUNC which can be used to
120 indicate that if the symbol is the target of a relocation, its value should
121 not be use. Instead the function should be invoked and its result used as
122 the value.
123
124 * Add support for Lattice Mico32 (lm32) architecture.
125
126 * Add support for Xilinx MicroBlaze architecture.
127
128 Changes in 2.19:
129
130 * New pseudo op .cfi_val_encoded_addr, to record constant addresses in unwind
131 tables without runtime relocation.
132
133 * New command line option, -h-tick-hex, for sh, m32c, and h8/300 targets, which
134 adds compatibility with H'00 style hex constants.
135
136 * New command line option, -msse-check=[none|error|warning], for x86
137 targets.
138
139 * New sub-option added to the assembler's -a command line switch to
140 generate a listing output. The 'g' sub-option will insert into the listing
141 various information about the assembly, such as assembler version, the
142 command line options used, and a time stamp.
143
144 * New command line option -msse2avx for x86 target to encode SSE
145 instructions with VEX prefix.
146
147 * Add Intel XSAVE, EPT, MOVBE, AES, PCLMUL, AVX/FMA support for x86 target.
148
149 * New command line options, -march=CPU[,+EXTENSION...], -mtune=CPU,
150 -mmnemonic=[att|intel], -msyntax=[att|intel], -mindex-reg,
151 -mnaked-reg and -mold-gcc, for x86 targets.
152
153 * Support for generating wide character strings has been added via the new
154 pseudo ops: .string16, .string32 and .string64.
155
156 * Support for SSE5 has been added to the i386 port.
157
158 Changes in 2.18:
159
160 * The GAS sources are now released under the GPLv3.
161
162 * Support for the National Semiconductor CR16 target has been added.
163
164 * Added gas .reloc pseudo. This is a low-level interface for creating
165 relocations.
166
167 * Add support for x86_64 PE+ target.
168
169 * Add support for Score target.
170
171 Changes in 2.17:
172
173 * Support for the Infineon XC16X has been added by KPIT Cummins Infosystems.
174
175 * Support for ms2 architecture has been added.
176
177 * Support for the Z80 processor family has been added.
178
179 * Add support for the "@<file>" syntax to the command line, so that extra
180 switches can be read from <file>.
181
182 * The SH target supports a new command line switch --enable-reg-prefix which,
183 if enabled, will allow register names to be optionally prefixed with a $
184 character. This allows register names to be distinguished from label names.
185
186 * Macros with a variable number of arguments are now supported. See the
187 documentation for how this works.
188
189 * Added --reduce-memory-overheads switch to reduce the size of the hash
190 tables used, at the expense of longer assembly times, and
191 --hash-size=<NUMBER> to set the size of the hash tables used by gas.
192
193 * Macro names and macro parameter names can now be any identifier that would
194 also be legal as a symbol elsewhere. For macro parameter names, this is
195 known to cause problems in certain sources when the respective target uses
196 characters inconsistently, and thus macro parameter references may no longer
197 be recognized as such (see the documentation for details).
198
199 * Support the .f_floating, .d_floating, .g_floating and .h_floating directives
200 for the VAX target in order to be more compatible with the VAX MACRO
201 assembler.
202
203 * New command line option -mtune=[itanium1|itanium2] for IA64 targets.
204
205 Changes in 2.16:
206
207 * Redefinition of macros now results in an error.
208
209 * New command line option -mhint.b=[ok|warning|error] for IA64 targets.
210
211 * New command line option -munwind-check=[warning|error] for IA64
212 targets.
213
214 * The IA64 port now uses automatic dependency violation removal as its default
215 mode.
216
217 * Port to MAXQ processor contributed by HCL Tech.
218
219 * Added support for generating unwind tables for ARM ELF targets.
220
221 * Add a -g command line option to generate debug information in the target's
222 preferred debug format.
223
224 * Support for the crx-elf target added.
225
226 * Support for the sh-symbianelf target added.
227
228 * Added a pseudo-op (.secrel32) to generate 32 bit section relative relocations
229 on pe[i]-i386; required for this target's DWARF 2 support.
230
231 * Support for Motorola MCF521x/5249/547x/548x added.
232
233 * Support for ColdFire EMAC instructions added and Motorola syntax for MAC/EMAC
234 instrucitons.
235
236 * New command line option -mno-shared for MIPS ELF targets.
237
238 * New command line option --alternate and pseudo-ops .altmacro and .noaltmacro
239 added to enter (and leave) alternate macro syntax mode.
240
241 Changes in 2.15:
242
243 * The MIPS -membedded-pic option (Embedded-PIC code generation) is
244 deprecated and will be removed in a future release.
245
246 * Added PIC m32r Linux (ELF) and support to M32R assembler.
247
248 * Added support for ARM V6.
249
250 * Added support for sh4a and variants.
251
252 * Support for Renesas M32R2 added.
253
254 * Limited support for Mapping Symbols as specified in the ARM ELF
255 specification has been added to the arm assembler.
256
257 * On ARM architectures, added a new gas directive ".unreq" that undoes
258 definitions created by ".req".
259
260 * Support for Motorola ColdFire MCF528x added.
261
262 * Added --gstabs+ switch to enable the generation of STABS debug format
263 information with GNU extensions.
264
265 * Added support for MIPS64 Release 2.
266
267 * Added support for v850e1.
268
269 * Added -n switch for x86 assembler. By default, x86 GAS replaces
270 multiple nop instructions used for alignment within code sections
271 with multi-byte nop instructions such as leal 0(%esi,1),%esi. This
272 switch disables the optimization.
273
274 * Removed -n option from MIPS assembler. It was not useful, and confused the
275 existing -non_shared option.
276
277 Changes in 2.14:
278
279 * Added support for MIPS32 Release 2.
280
281 * Added support for Xtensa architecture.
282
283 * Support for Intel's iWMMXt processor (an ARM variant) added.
284
285 * An assembler test generator has been contributed and an example file that
286 uses it (gas/testsuite/gas/all/test-gen.c and test-exmaple.c).
287
288 * Support for SH2E added.
289
290 * GASP has now been removed.
291
292 * Support for Texas Instruments TMS320C4x and TMS320C3x series of
293 DSP's contributed by Michael Hayes and Svein E. Seldal.
294
295 * Support for the Ubicom IP2xxx microcontroller added.
296
297 Changes in 2.13:
298
299 * Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400
300 and FR500 included.
301
302 * Support for DLX processor added.
303
304 * GASP has now been deprecated and will be removed in a future release. Use
305 the macro facilities in GAS instead.
306
307 * GASP now correctly parses floating point numbers. Unless the base is
308 explicitly specified, they are interpreted as decimal numbers regardless of
309 the currently specified base.
310
311 Changes in 2.12:
312
313 * Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
314
315 * Support for the OpenRISC 32-bit embedded processor by OpenCores.
316
317 * The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for
318 specifying the target instruction set. The old method of specifying the
319 target processor has been deprecated, but is still accepted for
320 compatibility.
321
322 * Support for the VFP floating-point instruction set has been added to
323 the ARM assembler.
324
325 * New psuedo op: .incbin to include a set of binary data at a given point
326 in the assembly. Contributed by Anders Norlander.
327
328 * The MIPS assembler now accepts -march/-mtune. -mcpu has been deprecated
329 but still works for compatability.
330
331 * The MIPS assembler no longer issues a warning by default when it
332 generates a nop instruction from a macro. The new command line option
333 -n will turn on the warning.
334
335 Changes in 2.11:
336
337 * Support for PDP-11 and 2.11BSD a.out format, by Lars Brinkhoff.
338
339 * x86 gas now supports the full Pentium4 instruction set.
340
341 * Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs.
342
343 * Support for Motorola 68HC11 and 68HC12.
344
345 * Support for Texas Instruments TMS320C54x (tic54x).
346
347 * Support for IA-64.
348
349 * Support for i860, by Jason Eckhardt.
350
351 * Support for CRIS (Axis Communications ETRAX series).
352
353 * x86 gas has a new .arch pseudo op to specify the target CPU architecture.
354
355 * x86 gas -q command line option quietens warnings about register size changes
356 due to suffix, indirect jmp/call without `*', stand-alone prefixes, and
357 translating various deprecated floating point instructions.
358
359 Changes in 2.10:
360
361 * Support for the ARM msr instruction was changed to only allow an immediate
362 operand when altering the flags field.
363
364 * Support for ATMEL AVR.
365
366 * Support for IBM 370 ELF. Somewhat experimental.
367
368 * Support for numbers with suffixes.
369
370 * Added support for breaking to the end of repeat loops.
371
372 * Added support for parallel instruction syntax (DOUBLEBAR_PARALLEL).
373
374 * New .elseif pseudo-op added.
375
376 * New --fatal-warnings option.
377
378 * picoJava architecture support added.
379
380 * Motorola MCore 210 processor support added.
381
382 * A new pseudo-op .intel_syntax has been implemented to allow gas to parse i386
383 assembly programs with intel syntax.
384
385 * New pseudo-ops .func,.endfunc to aid in debugging user-written assembler code.
386
387 * Added -gdwarf2 option to generate DWARF 2 debugging information.
388
389 * Full 16-bit mode support for i386.
390
391 * Greatly improved instruction operand checking for i386. This change will
392 produce errors or warnings on incorrect assembly code that previous versions
393 of gas accepted. If you get unexpected messages from code that worked with
394 older versions of gas, please double check the code before reporting a bug.
395
396 * Weak symbol support added for COFF targets.
397
398 * Mitsubishi D30V support added.
399
400 * Texas Instruments c80 (tms320c80) support added.
401
402 * i960 ELF support added.
403
404 * ARM ELF support added.
405
406 Changes in 2.9:
407
408 * Texas Instruments c30 (tms320c30) support added.
409
410 * The assembler now optimizes the exception frame information generated by egcs
411 and gcc 2.8. The new --traditional-format option disables this optimization.
412
413 * Added --gstabs option to generate stabs debugging information.
414
415 * The -a option takes a new suboption, m (e.g., -alm) to expand macros in a
416 listing.
417
418 * Added -MD option to print dependencies.
419
420 Changes in 2.8:
421
422 * BeOS support added.
423
424 * MIPS16 support added.
425
426 * Motorola ColdFire 5200 support added (configure for m68k and use -m5200).
427
428 * Alpha/VMS support added.
429
430 * m68k options --base-size-default-16, --base-size-default-32,
431 --disp-size-default-16, and --disp-size-default-32 added.
432
433 * The alignment directives now take an optional third argument, which is the
434 maximum number of bytes to skip. If doing the alignment would require
435 skipping more than the given number of bytes, the alignment is not done at
436 all.
437
438 * The ELF assembler has a new pseudo-op, .symver, used for symbol versioning.
439
440 * The -a option takes a new suboption, c (e.g., -alc), to skip false
441 conditionals in listings.
442
443 * Added new pseudo-op, .equiv; it's like .equ, except that it is an error if
444 the symbol is already defined.
445
446 Changes in 2.7:
447
448 * The PowerPC assembler now allows the use of symbolic register names (r0,
449 etc.) if -mregnames is used. Symbolic names preceded by a '%' (%r0, etc.)
450 can be used any time. PowerPC 860 move to/from SPR instructions have been
451 added.
452
453 * Alpha Linux (ELF) support added.
454
455 * PowerPC ELF support added.
456
457 * m68k Linux (ELF) support added.
458
459 * i960 Hx/Jx support added.
460
461 * i386/PowerPC gnu-win32 support added.
462
463 * SCO ELF support added. For OpenServer 5 targets (i386-unknown-sco3.2v5) the
464 default is to build COFF-only support. To get a set of tools that generate
465 ELF (they'll understand both COFF and ELF), you must configure with
466 target=i386-unknown-sco3.2v5elf.
467
468 * m88k-motorola-sysv3* support added.
469
470 Changes in 2.6:
471
472 * Gas now directly supports macros, without requiring GASP.
473
474 * Gas now has an MRI assembler compatibility mode. Use -M or --mri to select
475 MRI mode. The pseudo-op ``.mri 1'' will switch into the MRI mode until the
476 ``.mri 0'' is seen; this can be convenient for inline assembler code.
477
478 * Added --defsym SYM=VALUE option.
479
480 * Added -mips4 support to MIPS assembler.
481
482 * Added PIC support to Solaris and SPARC SunOS 4 assembler.
483
484 Changes in 2.4:
485
486 * Converted this directory to use an autoconf-generated configure script.
487
488 * ARM support, from Richard Earnshaw.
489
490 * Updated VMS support, from Pat Rankin, including considerably improved
491 debugging support.
492
493 * Support for the control registers in the 68060.
494
495 * Handles (ignores) a new directive ".this_GCC_requires_the_GNU_assembler", to
496 provide for possible future gcc changes, for targets where gas provides some
497 features not available in the native assembler. If the native assembler is
498 used, it should become obvious pretty quickly what the problem is.
499
500 * Usage message is available with "--help".
501
502 * The GNU Assembler Preprocessor (gasp) is included. (Actually, it was in 2.3
503 also, but didn't get into the NEWS file.)
504
505 * Weak symbol support for a.out.
506
507 * A bug in the listing code which could cause an infinite loop has been fixed.
508 Bugs in listings when generating a COFF object file have also been fixed.
509
510 * Initial i386-svr4 PIC implementation from Eric Youngdale, based on code by
511 Paul Kranenburg.
512
513 * Improved Alpha support. Immediate constants can have a much larger range
514 now. Support for the 21164 has been contributed by Digital.
515
516 * Updated ns32k (pc532-mach, netbsd532) support from Ian Dall.
517
518 Changes in 2.3:
519
520 * Mach i386 support, by David Mackenzie and Ken Raeburn.
521
522 * RS/6000 and PowerPC support by Ian Taylor.
523
524 * VMS command scripts (make-gas.com, config-gas.com) have been worked on a bit,
525 based on mail received from various people. The `-h#' option should work
526 again too.
527
528 * HP-PA work, by Jeff Law. Note, for the PA, gas-2.3 has been designed to work
529 with gdb-4.12 and gcc-2.6. As gcc-2.6 has not been released yet, a special
530 version of gcc-2.5.8 has been patched to work with gas-2.3. You can retrieve
531 this special version of gcc-2.5.8 via anonymous ftp from jaguar.cs.utah.edu
532 in the "dist" directory.
533
534 * Vax support in gas fixed for BSD, so it builds and seems to run a couple
535 simple tests okay. I haven't put it through extensive testing. (GNU make is
536 currently required for BSD 4.3 builds.)
537
538 * Support for the DEC Alpha, running OSF/1 (ECOFF format). The gas support is
539 based on code donated by CMU, which used an a.out-based format. I'm afraid
540 the alpha-a.out support is pretty badly mangled, and much of it removed;
541 making it work will require rewriting it as BFD support for the format anyways.
542
543 * Irix 5 support.
544
545 * The test suites have been fixed up a bit, so that they should work with a
546 couple different versions of expect and dejagnu.
547
548 * Symbols' values are now handled internally as expressions, permitting more
549 flexibility in evaluating them in some cases. Some details of relocation
550 handling have also changed, and simple constant pool management has been
551 added, to make the Alpha port easier.
552
553 * New option "--statistics" for printing out program run times. This is
554 intended to be used with the gcc "-Q" option, which prints out times spent in
555 various phases of compilation. (You should be able to get all of them
556 printed out with "gcc -Q -Wa,--statistics", I think.)
557
558 Changes in 2.2:
559
560 * RS/6000 AIX and MIPS SGI Irix 5 support has been added.
561
562 * Configurations that are still in development (and therefore are convenient to
563 have listed in configure.in) still get rejected without a minor change to
564 gas/Makefile.in, so people not doing development work shouldn't get the
565 impression that support for such configurations is actually believed to be
566 reliable.
567
568 * The program name (usually "as") is printed when a fatal error message is
569 displayed. This should prevent some confusion about the source of occasional
570 messages about "internal errors".
571
572 * ELF support is falling into place. Support for the 386 should be working.
573 Support for SPARC Solaris is in. HPPA support from Utah is being integrated.
574
575 * Symbol values are maintained as expressions instead of being immediately
576 boiled down to add-symbol, sub-symbol, and constant. This permits slightly
577 more complex calculations involving symbols whose values are not alreadey
578 known.
579
580 * DBX-style debugging info ("stabs") is now supported for COFF formats.
581 If any stabs directives are seen in the source, GAS will create two new
582 sections: a ".stab" and a ".stabstr" section. The format of the .stab
583 section is nearly identical to the a.out symbol format, and .stabstr is
584 its string table. For this to be useful, you must have configured GCC
585 to generate stabs (by defining DBX_DEBUGGING_INFO), and must have a GDB
586 that can use the stab sections (4.11 or later).
587
588 * LynxOS, on i386 and m68k platforms, is now supported. SPARC LynxOS
589 support is in progress.
590
591 Changes in 2.1:
592
593 * Several small fixes for i386-aix (PS/2) support from Minh Tran-Le have been
594 incorporated, but not well tested yet.
595
596 * Altered the opcode table split for m68k; it should require less VM to compile
597 with gcc now.
598
599 * Some minor adjustments to add (Convergent Technologies') Miniframe support,
600 suggested by Ronald Cole.
601
602 * HPPA support (running OSF only, not HPUX) has been contributed by Utah. This
603 includes improved ELF support, which I've started adapting for SPARC Solaris
604 2.x. Integration isn't completely, so it probably won't work.
605
606 * HP9000/300 support, donated by HP, has been merged in.
607
608 * Ian Taylor has finished the MIPS ECOFF (Ultrix, Irix) support.
609
610 * Better error messages for unsupported configurations (e.g., hppa-hpux).
611
612 * Test suite framework is starting to become reasonable.
613
614 Changes in 2.0:
615
616 * Mostly bug fixes.
617
618 * Some more merging of BFD and ELF code, but ELF still doesn't work.
619
620 Changes in 1.94:
621
622 * BFD merge is partly done. Adventurous souls may try giving configure the
623 "--with-bfd-assembler" option. Currently, ELF format requires it, a.out
624 format accepts it; SPARC CPU accepts it. It's the default only for OS "elf"
625 or "solaris". (ELF isn't really supported yet. It needs work. I've got
626 some code from Utah for HP-PA ELF, and from DG for m88k ELF, but they're not
627 fully merged yet.)
628
629 * The 68K opcode table has been split in half. It should now compile under gcc
630 without consuming ridiculous amounts of memory.
631
632 * A couple data structures have been reduced in size. This should result in
633 saving a little bit of space at runtime.
634
635 * Support for MIPS, from OSF and Ralph Campbell, has been merged in. The OSF
636 code provided ROSE format support, which I haven't merged in yet. (I can
637 make it available, if anyone wants to try it out.) Ralph's code, for BSD
638 4.4, supports a.out format. We don't have ECOFF support in just yet; it's
639 coming.
640
641 * Support for the Hitachi H8/500 has been added.
642
643 * VMS host and target support should be working now, thanks chiefly to Eric
644 Youngdale.
645
646 Changes in 1.93.01:
647
648 * For m68k, support for more processors has been added: 68040, CPU32, 68851.
649
650 * For i386, .align is now power-of-two; was number-of-bytes.
651
652 * For m68k, "%" is now accepted before register names. For COFF format, which
653 doesn't use underscore prefixes for C labels, it is required, so variable "a0"
654 can be distinguished from the register.
655
656 * Last public release was 1.38. Lots of configuration changes since then, lots
657 of new CPUs and formats, lots of bugs fixed.
658
659 \f
660 Copyright (C) 2012-2016 Free Software Foundation, Inc.
661
662 Copying and distribution of this file, with or without modification,
663 are permitted in any medium without royalty provided the copyright
664 notice and this notice are preserved.
665
666 Local variables:
667 fill-column: 79
668 End:
This page took 0.057665 seconds and 5 git commands to generate.