Thanks to Maarten and Borut's help I was able to get --model-huge code
working on my system.
I did run into one issue: if my code contains a _sdcc_external_startup
routine, the stack gets blown up on return.
As far as I can tell, what happens is this:
1. We jump to _sdcc_gsinit_startup
2. _sdcc_gsinit_startup calls _sdcc_external_startup using a normal call
direct to the subroutine.
3. _sdcc_external_startup does its stuff and returns via the trampoline
(ljmp __sdcc_banked_ret).
4. _sdcc_banked_ret empties the stack and returns to the wrong place.
5. Program fails.
If I don't use an _sdcc_external_startup function, everything works.
Only when I add the external startup do I get a failure.
I was able to make the external startup work by making it a naked
function and forcing a normal return.
char _sdcc_external_startup (void) __naked {
asm
ret
end_asm;
}
Other than that, so far so good.
I am using the SDCC :
mcs51/gbz80/z80/ds390/pic16/pic14/TININative/ds400/hc08 2.9.7 #5729
(Mar 9 2010) (MINGW3)
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user