[fpc-devel] Regarding Issue/Patch 0032637

J. Gareth Moreton gareth at moreton-family.com
Sun Nov 26 12:16:41 CET 2017


Hi everyone,

Re: https://bugs.freepascal.org/view.php?id=32637

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?

Gareth



More information about the fpc-devel mailing list