On Monday 23 October 2006 09:16, Martin Guy wrote:
Now, gcc4 can produce code with several return instructions (with no
option to turn that of, as far as I understand). You cannot cut them out,
and therefore you cannot chain the simple functions.
...unless you also map return instructions within the generated
functions into branches to the soon-to-be-dropped final "return"? Not
that I know anything about qemu internals mind u...
That's exactly what my gcc4 hacks do.
It gets complicated because a x86 uses variable length insn encodings so you
don't know where insn boundaries are, and a jmp instruction is larger than a
ret instruction so it's not always possible to do a straight replacement.