SDCC 3.2.0 Released

Submitted by GG on Tue, 07/10/2012 - 17:48

SDCC logoThe SDCC team has been quite busy lately and they managed to put out yet another great release of the best free software compiler for microcontrollers. Version 3.2.0 adds S08 support (making our staff incredibly happy) and revives the support for gbz80.

Besides the numerous bug fixes here is a list of the important changes since the release 3.1.0 (list taken from SDCC website):

  • Named address spaces with optimal placement of bank selection calls.
  • _Noreturn.
  • --std-c11 command line option for ISO C11.
  • ucsim support for the LR35902 (gameboy CPU).
  • The gbz80 port is alive again, there were many bug fixes and the generated code is much better now.
  • Pic 14 enhanced core libraries are included in sdcc builds by default
  • Added pic 14 enhanced core devices: 16f1503, 16f1508, 16f1509, 16f1516, 16f1517, 16f1518, 16f1519, 16f1526, 16f1527, 16f1946, 16f1947
  • PIC14/PIC16: Implemented __critical; PIC14 __critical function cannot have arguments for now, though
    inclusion of some tests from the gcc test suite into the sdcc regression test suite led to many bugs being found and fixed.
  • Many macros with previously non-standard-compliant names have been renamed (SDCC_REVISION to __SDCC_REVISION, etc).
  • setjmp() / longjmp() for the z180 and r2k ports.
  • Added sdar archive managing utility. sdar and sdranlib are derived from GNU binutils package
  • Added support for pic 14 core devices: 16f720, 16f721, 16f882, 16f883, 16f884, 16f747, 16f946
  • sdcpp synchronized with GNU cpp 4.6.3
  • Added support for pic 18f1230/18f1330 device family
  • Implemented #pragma config for pic16 target
  • sdcc now works on Debian GNU/Hurd.
  • New register allocator for the hc08 port, resulting in better code being generated.
  • New s08 port.
  • New r3ka port.
  • Many small improvements in the z80, hc08 and r2k code generation, reducing code size.
  • Shift, multiplication, division and returning of long long are now supported (modulo for long long is still missing, integer literals of type long long are broken).
Filed under