if anyone is interested...
I did a fresh code size testbench for STM8 ( like
http://sdcc.sourceforge.net/mediawiki/index.php/Stm8_code_size )
1. command line: 'sdcc -mstm8 --opt-code-size -c'
release SDCC :
mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8
3.4.0
Lots of improvements since 3.6.9 #9960
Almost twice faster compilation.
New performance leaders: init_loop, set_sprite_x
Issues: galois_lfsr (+5bytes), set_screen_mode(+30 bytes)
mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8
3.7.2 #10526 (MINGW64)
command li
Perhaps mcs51/peeph.def should be generalized/extended to cases of
conditional jumps on next instruction along to existing cases of ljmp&sjmp
(Peephole 107,200)
--
Check out the vibrant tech community on one of the world's
Actual TNZ peephole can be extended for one more
It should help to sdcc_divulong
replace restart {
ld (%1, %2), a
tnz a
} by {
ld (%1, %2), a
}
In 3.8.0 srl (x) / inc (x) do redundant loads/store
00102$:
; huffman_iterative.c: 32: state->bit++;
ldw x, (0x05, sp)
ld a, (x) ; <-- next 3 line