Juergen Lock wrote:
> > > Ok Jung-uk Kim found the following fix: (Thanx!)
> > > 
> > > --- qemu/cpu-exec.c.orig  Wed Jan 31 16:58:03 2007
> > > +++ qemu/cpu-exec.c       Wed Jan 31 17:08:11 2007
> > > @@ -226,9 +226,9 @@
> > >  
> > >  int cpu_exec(CPUState *env1)
> > >  {
> > > -    int saved_T0, saved_T1;
> > > +    long saved_T0, saved_T1;
> > >  #if defined(reg_T2)
> > > -    int saved_T2;
> > > +    long saved_T2;
> > 
> > I used target_ulong instead.
> 
> Isn't that 32 bit for 32 bit targets?  Then it wouldn't fix the bug,
> the problem happened for 32 bit guests (i386-softmmu) on 64 bit hosts
> (FreeBSD-current/amd64), there the upper half of rbx which held a
> pointer in the calling function was lost...

Apparently I miss something here. If T0 is a (32bit) target_ulong,
why does saving it to a (32bit) target_ulong and restoring it from
there cause any trouble?


Thiemo


_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to