Re: [Qemu-devel] [PATCH] Fix dyngen failure on PPC.

2005-05-01 Thread Paul Brook
On Sunday 01 May 2005 21:15, Flavio Visentin wrote: > > This is not correct. > > If the blr is not at the end of the function, things will break. > > [SNIP] > > > This basically only ever worked because gcc could be coerced into > > generating relatively simple code. GCC4 contains much more aggress

Re: [Qemu-devel] [PATCH] Fix dyngen failure on PPC.

2005-05-01 Thread Paul Brook
On Sunday 01 May 2005 21:29, Jonas Maebe wrote: > On 01 May 2005, at 19:04, Paul Brook wrote: > > This is not correct. > > If the blr is not at the end of the function, things will break. > > dyngen assumes the last instruction is the only return instruction in > > the > > function. This allows it

Re: [Qemu-devel] [PATCH] Fix dyngen failure on PPC.

2005-05-01 Thread Jonas Maebe
On 01 May 2005, at 19:04, Paul Brook wrote: This is not correct. If the blr is not at the end of the function, things will break. dyngen assumes the last instruction is the only return instruction in the function. This allows it to remove the blr insn and concatenate multiple functions together.

Re: [Qemu-devel] [PATCH] Fix dyngen failure on PPC.

2005-05-01 Thread Flavio Visentin
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 > This is not correct. > If the blr is not at the end of the function, things will break. [SNIP] > This basically only ever worked because gcc could be coerced into generating > relatively simple code. GCC4 contains much more aggressive high level

Re: [Qemu-devel] [PATCH] Fix dyngen failure on PPC.

2005-05-01 Thread Paul Brook
On Saturday 30 April 2005 12:10, David Woodhouse wrote: > GCC 4 occasionally generates functions with the 'blr' somewhere in the > middle and a branch at the end. > > --- qemu-0.7.0/dyngen.c.orig 2005-04-30 11:59:05.0 +0100 > +++ qemu-0.7.0/dyngen.c 2005-04-30 12:00:11.0 +010

[Qemu-devel] [PATCH] Fix dyngen failure on PPC.

2005-05-01 Thread David Woodhouse
GCC 4 occasionally generates functions with the 'blr' somewhere in the middle and a branch at the end. --- qemu-0.7.0/dyngen.c.orig2005-04-30 11:59:05.0 +0100 +++ qemu-0.7.0/dyngen.c 2005-04-30 12:00:11.0 +0100 @@ -1396,11 +1395,13 @@ void gen_code(const char *name, host_ulo #