This page gives a summary of changes between the different snapshots. A ChangeLog is also available in each source patch to document the modifications.
Oct 5, 2003
Alpha Release 2.90
- Binutils
- Gcc
- Use Gcc 3.3.1
- Several peephole optimizations
- Fix [bug #3432] -m68hcs12 option cannot be used due to link errors with provided libs
- Gdb
- Newlib
- Port based on newlib 1.11.0
- Disabled %ll (64-bit integer) support in printf.
May 1, 2003
Release 2.2
- Binutils
- Fix [ Bug #3331 ] Invalid group relaxation, bset uses an invalid address
- Fix [ Bug #2400 ] Problem in as with .incbin on Windows
- Fix [ Bug #1906 ] linker does not relocate 68HC12 far calls correctly
- Fix [ Bug #1231 ] Must support Start12
- Generate trampolines to call a far function using jsr
- Support for far calls on 68HC12 and 68HC11
- Gcc
- Generates dbeq, dbne, ibeq, ibne
- No longer generate the trampolines for HC11/HC12 far functions (handled by the linker)
- Several gcc peephole2 optimizations (final code generation)
- Fix gcc register renaming optimization (-frename-registers)
- Fix rotate generation
- New libgcc rotate functions (from gcc 3.3)
- Gdb
- Fix [ Bug #2921 ] Simulator output compare is broken
- Fixes in debugging memory bank windows
- Fixes in simulator to support memory bank windows.
- Binaries
- Fix [ Bug #3398 ] install pb on Windows
- Documentation improvement
- Tutorial (first version)
Feb 16, 2003
Alpha Release 2.1.9a
- Binutils
- Support memory banks for 68HC11
- New gas modifier %page and %addr to specify the page number or address part of a banked address.
- Warn at link time if a jsr is made to a far function
- Gcc
- Support memory banks for 68HC11
- Generate the trampolines for HC11/HC12 far functions (allows to use address of function)
Jan 4, 2003
Release 2.1.1
- Gdb
- New simulator option --bootstrap to simulate bootstrap mode
- Binutils
- Fix [ Bug #1825 ] gas assemble PC-relative indexed addressing modes incorrectly
- Fix [ Bug #1906 ] linker does not relocate 68HC12 far calls correctly
- Relax 68HC11 jsr into bsr when the relative branch instruction can be used.
Nov 17, 2002
Release 2.1
- Gcc
- Fix [ Bug #1483 ] Undefined symbol ___mulqi3
- Faster 32-bit integer division (uses idiv if possible)
- New gcc option -m68hcs12 to support HCS12
- New gcc attributes near and far for 68HC12 functions.
- Gdb
- Fixes for gdb calling program functions (print and call commands).
- Binutils
- Fix [ Bug #1290 ] Disassembling of bclr is wrong for 68HC12
- Fix [ Bug #1403 ] Branch adjustment to another section not correct when doing linker relaxation
- Fix [ Bug #1417 ] Branch wrong after linker relaxation
- Fix [ Bug #1612 ] linker garbage collection removes static initialization
- New gas option -m68hcs12 to support HCS12
- New gas options -mshort, -mlong, -mshort-double, -mlong-double to specify the ABI used in ELF files.
- Newlib
- Fixes in the sim-valid.ld linker script.
- Binaries
- Fix [ Bug #1282 ] Missing file
in release 2.0 - Fix missing crt1.o problem in release 2.0 (when compiling for 32-bit ints).
Sep 20, 2002
Release 2.0
- Gcc
- Fix PR target/7361.
- Fix PR target/7223.
- New gcc option -mlong-calls to generate call and rtc.
- Gdb
- Port based on gdb 5.2.1
- Supports memory bank switching for 68HC12.
- Binutils
- Supports memory bank switching for 68HC12.
- Fix call assembling and disassembling.
- Newlib
- Cleanup newlib patch after integration in Red Hat CVS repository.
- Binaries
- Windows and GNU/Linux binaries.
June 26, 2002
Beta Release 1.9d
- Gcc
- Fix PR target/6899.
- Fix PR target/6698.
- Fix a problem with 68HC12 pre/post auto increment addressing modes
- Fix cross build for Windows/Mingw32
- Gdb
- Port based on Gdb 5.2
- Fix BDM support for Linux (from Martin Rod)
- Fix cross build for Windows/Mingw32
- Binutils
- Port based on Binutils 2.12.1
- Binaries
- Windows and GNU/Linux binaries.
Mar 17, 2002
Beta Release 1.9c
- Gcc
- Optimizations for 68HC12 (rotate with exg a,b)
- Fix a problem with 68HC12 pre/post auto increment addressing modes
- Fix a problem in gcc reload pass
- Avoid using _.tmp for add,sub,or,and,xor on 68HC12 (HImode only).
- Newlib
- Port based on Newlib 1.10
- Gdb
- Port based on Gdb 5.1
- Merge simulator fixes and improvements of GDB 5.2 (interrupt history, interrupt breakpoints, input oscillators, input capture)
Feb 3, 2002
Beta Release 1.9b
- Binutils
- Support group linker relaxation for 68HC11
- Fix configure and build with --target=m6812-elf
- Gcc
- Optimize or, and and xor patterns when second operand is in memory.
- Generate group linker relaxation.
Allows to translate (at link time):ldx #var bset 0,x #4 bset 1,x #8intobset *var #4 bset *var+1 #8when var is in page0.- Optimize 68HC12 addressing (access to global tables).
- Fix bug to now use inx/iny instead of leax 1,x and leay 1,y.
- Improve prologue/epilogue to use pshx/pshy to allocate local variables.
- New peepholes for 68HC12
- Optimize 68HC12 memory moves
- Reduce size of generated code by avoiding to run the last basic block reordering pass (this optimization introduced in gcc 3.x is useful for high-end processors but increases the size of the code).
Jan 4, 2002
Alpha Release 1.9a
- Binutils
- Fix a bug in assembler
- Fix 68HC12 long branchs
- Fix a disassembly bug with movb
- Support linker relaxation for 68HC11
- Support garbage collection of unused sections
- Gcc
- New option -mrelax to avoid generating direct addressing mode and let the linker do the job.
- Soft registers are now in .softregs specific section.
Oct 14, 2001
Release 1.1.1
- Gdb
- Fix GNU/Linux build to avoid depending on ncurses 5.x shared library.
- Fix build on Mingw32.
- Binutils
- Fix the linker scripts to create ROM-able programs (pb introduced with static constructors/destructors).
- Binaries
- Windows and GNU/Linux binaries.
Sep 29, 2001
Release 1.1
- Gcc
- Fix few generation bugs
- Fix static constructor/destructor generation.
- Fix __builtin_return_address and setjmp/longjmp as builtin.
- Fix C++ exception support (setjmp/longjmp exceptions)
- Fix static constructor/destructor support in startup file.
- Gdb
- Fix 68hc11 eeprom simulator
- Integrate Tim Housel BDM12 support
- Binutils
- Fix linker scripts to support static constructors/destructors.
- Fix problem with objdump -S
- Newlib
- Fix setjmp/longjmp
- Improve libc printf and read/write (no longer depends on libgloss)
May 8, 2001
Release 1.0
- Gcc
- Port based on GCC 2.95.3
- Fix few generation bugs
- Fix 8-bit mul of signed numbers
- Fix libgcc.a to split _.d1.._.d8 definitions (now defined as pairs (_.d1,_.d2), (_.d3,_.d4), ...
- Fix zero-extension of function parameter
- Fix some constraints for -msoft-reg-count=0
- Fix trampoline code generation for nested function calls (C nested functions are a GNU extension)
- Improvement in 68HC12 code generation:
- Generate inline multiplications and divisions (emul, emuls, idivs).
- Generate min/max and emin/emax instructions.
- Generate sex instructions.
- Generate tbeq and tbne instructions.
- Optimization of gcc instruction costs computation; costs depends on the 68hc11 or 68hc12 to tune the generated code.
- Gdb
- Fix return command by Gdb (pop frame)
- Fix idiv, emul simulations for 68HC12
- Binutils
- Port based on Binutils 2.11, no patch necessary
- Newlib
- Port based on Newlib 1.9.0
- Fix libgloss write().
January 14, 2001
Release 0.9c
- Gcc
- Fix several problems with 68hc12 code generation
- Optimize some libgcc functions for 68HC12
- Put soft registers in bss for 68HC12
- Integrate some reload fixes from GCC 2.95.3.
- Gdb
- 68HC12 simulator
- Debugging support for 68HC12
- Fix pb to access local variables and function arguments
- Improve Buffalo monitor support (68HC11)
- First support of DBug monitor (68HC12)
- Binutils
- Fix operands analysis for movw/movb (68HC12).
- Fix indexed indirect addressing mode.
- Fix support of weak symbols.
- Binaries
- Binary package for gdb on Windows.
- Binary package for Newlib on Windows.
- Fix winstall problem on Windows.
September 17, 2000
Release 0.9b
- Gcc
- Fix problem with 68hc12 byte move
- Update Gcc documentation (68hc11 options, machine constraints)
- Fix libgcc functions to avoid to use soft registers for 68hc12
- Fix bug when shifting by 7
- Gdb
- Fix accuracy of the simulator timer device
- Fix clearing of interrupts in the simulator
- Fix problems with the return, call and print commands in gdb
- Support for Buffalo monitor
- Fix to build GDB for Windows (using mingw32 cross compiler)
- Incorporate Readline patches for Windows (from Michael Rickmann <mrickma@gwdg.de>)
- Binutils
- Fix 68hc12 linker script
- Fix to build using mingw32 cross-compiler
- Binaries
- Improved RPM packages to provide the complete HTML documentation.
- Fixed the dependency on /usr/local in GCC RPM package.
August 5, 2000
Release 0.9a
- Gcc
- New optimizations:
- Optimize 32-bit comparisons (now inline)
- Optimize unsigned to float conversions
- Fix bug when shifting by 8
- Fix another reload bug
- Renamed the soft registers to avoid a conflict with C, C++ global variables and functions.
- Cleanup
- Remove flag -minline-32 (was not used)
- Fix build for 68hc12
- Gdb
- Port based on Gdb 5.0
- Fix frame unwinding ('where' command)
- Fix calling a function from gdb ('print' and 'call' commands)
- Improvement of the simulator: handle compare registers and SPI.
- New option --cpu-config=<val> to configure the 68hc11 CONFIG register at startup.
- Accounting for XIRQ mask time.
- Binutils
- Port based on Binutils 2.10
- Fix initialization of bss
- Fix relax bug in gas when assembling bsr instructions
- NLS support in gas.
- Newlib
- Fix #ifdef problem in setjmp.h
- Binaries
- Several RPM packages for GNU/Linux (binaries + html documentation)
Apr 22, 2000
- Gcc
- First step in optimization of 68HC12 code generation (not validated),
- Generate prologue and epilogue in RTL,
- Fix various reload problems,
- Cleanup
- Gdb
- Fix perf problem for simulator non-volatile RAM.
- Newlib
- Port based on newlib 1.8.2 instead of 1.8.1.
Feb 26, 2000
- Binutils
- Fixed BRCLR operands
- Gdb
- Fix various problems with the simulator
- Examples
- New bootstrap examples
- New packaging (several sub-directories)
- Cleanup and fix of some examples.
Jan 14, 2000
- Binutils
- Fixed a bug in GAS that cause branches to be generated incorrectly in some rare cases.
- Gcc
- Fix add/sub/logical patterns with zero extension.
- 72 new successful tests.
- Gdb
- Fix the source level debugging problem (next, step command now work correctly).
- Fix the backtrace (where, up, down now work correctly).
Dec 31, 1999
- Binutils
- Fixed some problems introduced by 68HC12 port (broken %lo, %hi)
- Recognize strings enclosed with single quotes.
- Newlib
- Hack in embedded sprintf for gcc test-suite.
- Gcc
- Added new peepholes to catch more XGDX/XGDY instructions
- New add/sub/logical patterns to optimize arithmetic operations with a zero extended operand.
- Fix 8 and 16-bit shift patterns
- Fix the padding of tiny structures.
- Fix problems in loop and reload passes.
- Gdb
- Fix 'subb N,x' in the simulator
- Fix writing in 68HC11 IO registers in the simulator.
Nov 29, 1999
- Binutils
- Ported for 68HC12 micro-controller, generates ELF files with EM_68HC12 magic.
- New gas options -m68hc11 and -m68hc12.
- Fixed the linker script to put .install* sections at beginning of ROM area during final link.
- Added some tests for gas and fixed the binutils test-suite.
- Newlib
- Recognize m68hc12 targets, fixed some headers for 68hc12.
- Gcc
- Recognize m68hc12 targets
- New gcc options -m68hc11 and -m68hc12.
- Multi-lib generation for 68HC11 & 68HC12.
- Fix mulhi3, addqi3, subqi3 patterns that caused failures on some programs with -mshort.
Nov 1, 1999
- Binutils
- Fixed the builtin linker script that caused failures on some hosts.
- Newlib
- Fixed the missing ChangeLog entries
- Provide basic printf, fprintf, vsprintf in -lbcc for use by the validation of GCC.
- Gcc
- 130 new successful tests in the validation.
- Better register allocation by avoiding the round-robin fashion for allocation of spill registers (reduces code size).
- Fixed some problems with comparisons.
- Fixed a problem with pointers passed in a va_list.
- Fixed a problem with addsi3_zero_extendqi pattern (32-bits add of an 8-bit zero-extended quantity).
- Support the trap and interrupt attributes.
Copyright (C) 1999, 2000, 2001, 2002, 2003 Stéphane Carrez, France
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.