[fpc-devel] Regarding Issue/Patch 0032637
J. Gareth Moreton
gareth at moreton-family.com
Sun Nov 26 12:16:41 CET 2017
I apologise for my slight outburst. I didn't quite appreciate Thaddy's response when I asked how to get SEH to
keep track of pushed registers ( http://forum.lazarus.freepascal.org/index.php/topic,39071.msg266937 ), but
Marcov gave me the answer.
Long story short, I have now modified my assembler code that contains ".seh_pushreg %rdi" after each "push
%rdi" instruction (the Linux versions don't actually push any registers because the required %rdi register is
volatile on that platform). I'm just doing a compilation of FPC, then I'll upload a new patch to the bug
report in question (any way to remove the old ones?).
Question though (although, by coincidence, it doesn't apply here), for the sake of SEH, must the stack be
aligned in ALL circumstances - for example, if you push a register halfway through the procedure, must you then
do something to ensure the stack returns to a 16-byte boundary and the SEH made aware of it?
More information about the fpc-devel