On Friday 02 February 2007 2:03 pm, Gwenole Beauchesne wrote: > On Fri, 2 Feb 2007, Gwenole Beauchesne wrote: > > > The proper fix would be to not globally allocate registers for the whole > > program but only for the micro-ops. Then, make the necessary > > save/restore around the gen_func call. > > Hmm, I realized in the train that this wouldn't work for QEMU. > > > + /* Preserve callee-saved registers */ > > +#ifdef AREG0 > > + register unsigned long reg_AREG0 asm(AREG0); > > + volatile unsigned long saved_AREG0; > > +#endif > > BTW, better read (unsigned long) as (void *) or uintptr_t in case you ever > want to port QEMU to Win64 or other strange LLP64 platform.
Is there an LLP64 platform other than Windows-64? I know there can't be a standards compliant Unix platform (including MacOS X) that isn't LP64: The LP64 standard is here: http://www.unix.org/whitepapers/64bit.html>the LP64 standard The rationale for that standard is here: http://www.unix.org/version2/whatsnew/lp64_wp.html And the insane legacy reasons Windows decided on a broken approach are explained here: http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx Considering that Windows 64 currently has less of a userbase than Itanium, I'd personally wait and see Microsoft's first attempt at a 64 bit solution turns out any better than Intel's before putting much effort into supporting it. So far it _sounds_ like the software equivalent of Itanic... Rob -- "Perfection is reached, not when there is no longer anything to add, but when there is no longer anything to take away." - Antoine de Saint-Exupery _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel