qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] qemu hw/ppc_oldworld.c target-ppc/cpu.h target-...


From: Fabrice Bellard
Subject: Re: [Qemu-devel] qemu hw/ppc_oldworld.c target-ppc/cpu.h target-...
Date: Sat, 24 Nov 2007 20:39:06 +0100
User-agent: Thunderbird 1.5.0.9 (X11/20070212)

Thiemo Seufer wrote:
> Paul Brook wrote:
>>>> I think what you mean is that they work the way that ppc64 is defined, to
>>>> remain compatible with ppc32.  IMHO this is entirely irrelevant as we're
>>>> emulating a ppc32. You could replace the high bits with garbage and
>>>> nothing would ever be able to tell the difference.
>>> PowerPC is a 64 bits architecture. PowerPC 32 on 32 bits host is
>>> optimized not to compute the 32 highest bits, the same way it's allowed
>>> to cut down the GPR when implementing a CPU that would not support the
>>> 64 bits mode (but this is a tolerance, this is not the architecture is
>>> defined).
>> No. PowerPC is defined as a 64-bit archirecure. However there is a subset of 
>> this architecture (aka ppc32) that is a complete 32-bit architecture in its 
>> own right.  By your own admission, we can get away with not calculating the 
>> high 32 bit of the register. If follows that the high bits are completely 
>> meaningless. 
> 
> This btw. also means that the ppc32 emulation on 32-bit hosts is needlessly
> inefficient if the high bits are carried around.
> 
>> The qemu ppc32 emulation is implemented in such a way that on 64-bit hosts 
>> it 
>> looks a lot like a ppc64 implementation. However this need not, and should 
>> not be exposed to the user.
>>
>>> OK. Those are real bugs to be fixed. I'll take a look.... But I'll try
>>> not to break the GPR dump. In fact, GPR should always dumped as 64 bits,
>>> even when runnig on 32 bits hosts. This would be more consistent with
>>> the specification.
>> I disagree. qemu is implementing ppc32. Showing more than 32 bits of 
>> register 
>> is completely bogus. Any differences between a 32-bit host and a 64-bit host 
>> are a qemu bug. If you display 64 bits, then those 64 bits had better be the 
>> same when run on 32-bit hosts.
> 
> I strongly agree with Paul.

I strongly agree too and I suggest to remove the type ppc_gpr_t and to
replace it with target_ulong (and uint32_t for the high part of the SPE
extensions).

Regards,

Fabrice.




reply via email to

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