cancel
Showing results for 
Search instead for 
Did you mean: 

sourceforge.net

Philipp Krause
Senior II

Dear current and future SDCC users among the STM8 developers,

Today the first Release Candidate (RC1) for SDCC 3.8.0 has been created.

As always it has been put online in our SourceForge File section.

https://sourceforge.net/projects/sdcc/files/

If you have the time, please verify it and report back with the positive

or negative results.

In previous release 3.7.0, no binaries were released. 3.8.0 has binaries

gain, though the list of binary platforms changed. For 3.8.0, binaries

are released for GNU/Linux on amd64, Windows on amd64, macOS on amd64,

Windows on x86.

There have been various improvements, both features and bug fixes

since SDCC 3.7.0. The full ChangeLog is at

https://sourceforge.net/p/sdcc/code/HEAD/tree/tags/sdcc-3.8.0-pre1/sdcc/ChangeLog.

The following is a list of particularly noticeable new features.

* Additional general utility function: bsearch()

* Support for rematerialization in the stm8 backend reduces register pressure and stack usage

* Merged upstream GNU binutils 2.30

* All Python code is now fully compatible with both Python 2.7 and Python 3.6, so Python 3 can be used instead of Python 2.

* Regression testing for diagnostics.

* Improved handling of local bool variables in the mcs51 backend substantially reduces code size.

* Large memory model for stm8 for 24-bit codespace allows using more than 32KB of Flash for code.

* New optimizations for calls to some standard library function

(printf(), puts(), strcpy()).

* The type of true and false from stdbool.h change from int to bool.

* New C2X mode (--std-c2x, --std-sdcc2x, #pragma std_c2x) adds support for one-argument static_assert variant.

* Intermingling of declarations and statements (ISO C99).

* Support headers for AX8052 devices.

* Adopted GCC 8.2 regression tests (execute part of the GCC C torture tests).

Philipp Klaus Krause

SDCC 3.8.0 Release Manager

P.S.: For the STM8, clearly the highlight among the new features is the support for placing functions in the whole 24-bit address space (even though it only matters for those STM8 devices with more than 32K of Flash). Another important improvement is the improved standard compliance. And there were many bugfixes and smaller improvements relevant to the STM8. SDCC 3.8.0 generates smaller, faster code for the STM8 than SDCC 3.7.0 did.

2 REPLIES 2
flankerus
Associate II

Good news.

I compiled it from slackware 14.2, gcc-5.3.0 without anything troubles. 

But code optimization is not yet perfect. 

;   main.c: 62: while((CLK_SWCR & CLK_SWCR_SWBSY));
00101$:
    ld  a, 0x50c5
    srl a
    jrc 00101$

This was compile with option: --opt-code-size.

Why not used the bit instruction BTJT?

Philipp Krause
Senior II

Final SDCC 3.8.0 has been released today.

Philipp