qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] qemu vs gcc4


From: Avi Kivity
Subject: Re: [Qemu-devel] qemu vs gcc4
Date: Mon, 23 Oct 2006 15:59:11 +0200
User-agent: Thunderbird 1.5.0.7 (X11/20060913)

Paul Brook wrote:
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.

how about

void some_generated_instruction(u32 a1, u32 s2)
{
      // code
      asm volatile ( "" );
}


that will force the code to fall through to the null asm code, avoiding premature returns.

if the code uses 'return' explicitly, turn it to a goto just before the 'asm volatile'.


--
error compiling committee.c: too many arguments to function





reply via email to

[Prev in Thread] Current Thread [Next in Thread]