Hi Paolo,
Patch-36 in my branch fixes the function epilogue on IA32 and x86-64
wrt. `allocai'. Basically, %esp was not restored to its original value
before %edi et al. were popped. Note that I only tested it on IA32, not
on x86-64. Also, I was unable to tweak `tests/allocai.c' so that it
systematically catches the problem.
Speaking of this, wouldn't a patching approach for `allocai' (as on
SPARC and PPC) be more efficient on Intel, instead of generating a `push
%eax' or similar for each `allocai'? More importantly, not using the
same approach as on SPARC and PPC yields semantic changes. Consider the
following code: