When compile _DspLoadFile() function in attached dsp_bank1.c, "--max-allocs-per-node 44" generated correct running result in dsp_bank1_44.asm and "--max-allocs-per-node 45" generated wrong result in dsp_bank1_45.asm.
C:\SDCC\BIN\sdcc dsp_bank1.c -mz80 -c --max-allocs-per-node 44 --std-c99 --codeseg CODE1
C:\sdcc\bin>sdcc -v
SDCC : mcs51/gbz80/z80/ds390/pic16/pic14/TININative/ds400/hc08 3.0.4 #6693 (Jul 28 2011) (MINGW32)
I modified dsp_bank1.c so it can be compiled by command line: C:\SDCC\BIN\sdcc dsp_bank1.c -mz80 -c --max-allocs-per-node 44 --std-c99 --codeseg CODE1
I modified dsp_bank1.c so it can be compiled by command line: C:\SDCC\BIN\sdcc dsp_bank1.c -mz80 -c --max-allocs-per-node 44 --std-c99 --codeseg CODE1
Another small (maybe not a) problem, when I tried "--max-allocs-per-node 5" I got the following:
C:\SDCC\BIN\sdcc dsp_bank1.c -mz80 -c --max-allocs-per-node 5 --std-c99 --codeseg CODE1
Caught signal 11: SIGSEGV
..\bin\make: *** [dsp_bank1.rel] Error -1073741819
The wrong code is being generated for line 41: iPage = pDspPage->iPage + Sys_iSystemPage;
Philipp
Original bug fixed in revision #6706.
SIGSEGV fixed in revision #6707.
Philipp