[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: strange crash on FreeBSD-current/amd64 (pointertrun
From: |
Rob Landley |
Subject: |
Re: [Qemu-devel] Re: strange crash on FreeBSD-current/amd64 (pointertruncation?) |
Date: |
Thu, 8 Feb 2007 08:09:54 -0500 |
User-agent: |
KMail/1.9.1 |
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