This page gives a summary of changes between the different snapshots. A ChangeLog is also available in each source patch to document the modifications.

Jun 12, 2005

Release 3.0.1
Gcc
Release 3.0
Gcc
  • Use Gcc 3.3.5
  • Improvement of 32-bit division for 68HC12 (uses ediv) https://savannah.gnu.org/bugs/?func=detailitem&item_id=11813

Aug 29, 2004

Pre-Release 2.92
Binutils
  • Use Binutils 2.15
Gcc
Gdb
Newlib
  • Use Newlib 1.12.0

Feb 29, 2004

Pre-Release 2.91
Binutils
  • Fix movb and movw assembling problem (from Tom Rix).
Gcc
  • Use Gcc 3.3.3
  • New peephole optimizations
  • New attribute page0 to be set on varibles and activate more page0 optimizations
  • Use page0 attribute to perform peephole optimizations and generate more bset, bclr.
Gdb
  • Use Gdb 6.0
  • Integrate Mingw32 fixes for readline and gdb core

Oct 5, 2003

Alpha Release 2.90
Binutils
Gcc
Gdb
Newlib
  • Port based on newlib 1.11.0
  • Disabled %ll (64-bit integer) support in printf.

May 1, 2003

Release 2.2
Binutils
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
Binaries

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

Nov 17, 2002

Release 2.1
Gcc
Gdb
  • Fixes for gdb calling program functions (print and call commands).
Binutils
Newlib
  • Fixes in the sim-valid.ld linker script.
Binaries

Sep 20, 2002

Release 2.0
Gcc
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 #8
    		
    into
    		bset *var #4
    		bset *var+1 #8
    		
    when 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.