|
From: Philipp K. K. <pk...@sp...> - 2017-05-10 20:49:19
|
Am 10.05.2017 um 22:16 schrieb Åke Rehnman: > On 2017-05-10 21:46, Philipp Klaus Krause wrote: >> Am 10.05.2017 um 21:30 schrieb Åke Rehnman: >>> Hello Philip, >>> I assume you mean the trouble with bool variables is incorrectly encoded >>> as floats? >> No, I meant the frame base issue. >> > To make the frame unwinding work in gdb the frame base has to be > constantly adjusted (call to updateCFA) when ever the stack pointer is > moved (e.i things pushed or popped from the stack). The hc08 makes those > push and pops in a few well defined functions perhaps total 5-10 places. > As opposed to the stm8 code since it is lacking pushReg() and popReg() > functions resulting in stack adjustments are made all over the place. > > So to make debugging work with CFA the first job would be to clean up > the code and move the stack operations into a few well defined places > similar to hc08. Since that work involves a lot of changes I was a bit > hesitant to make those changes since that would result in quite > difficult merges whenever the stm8 gen code change. > > /Ake I assume that changing the push / pop behaviour in stm8 codegen would come at a price in code size, speed and memory usage. I don't think that is acceptable for SDCC users. Any alternatives? Philipp |