qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Qemu-ppc] [PATCH for-1.1 0/3] tcg/ppc: AREG0 support a


From: Alexander Graf
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH for-1.1 0/3] tcg/ppc: AREG0 support and Darwin fixes
Date: Tue, 8 May 2012 21:42:18 +0200

On 08.05.2012, at 21:29, Andreas Färber wrote:

> Am 08.05.2012 20:09, schrieb Alexander Graf:
>> 
>> On 08.05.2012, at 19:39, malc wrote:
>> 
>>> On Tue, 8 May 2012, Alexander Graf wrote:
>>> 
>>>> On 07.05.2012, at 01:46, Andreas F?rber wrote:
>>>> 
>>>>> This series fixes two long-standing issues on Darwin/ppc and, based on 
>>>>> your
>>>>> second patch, fixes the AREG0 mode for Linux and Darwin and thus the ppc 
>>>>> build.
>>>>> 
>>>>> Compared to your last patch I have tried to avoid the { int ir; } block, 
>>>>> and
>>>>> I've combined both modes in one code path using ir and a new macro to 
>>>>> handle
>>>>> the alignment differences in a more explicit way.
>>>>> 
>>>>> Tested on Linux and Darwin, using i386 and x86_64 (non-AREG0) as well as 
>>>>> sparc
>>>>> and sparc64 (AREG0). On Darwin I observed a reproducible hang in fsck 
>>>>> during
>>>>> INIT under Debian/sparc, which given the lateness and now unified code 
>>>>> paths
>>>>> (i.e., Haiku/i386 and HelenOS/sparc64 working) I'd attribute to lingering
>>>>> main loop / signal handling issues.
> 
> What I was referring to here btw is that I've in one case seen Haiku
> continue shutting down once I grabbed and moved the mouse in Cocoa. Not
> observed on Linux with SDL or VNC.
> 
>>>> Malc, ping? :)
>>> 
>>> I raised my minor objections to Andreas on IRC, they are not yet
>>> addressed.
>> 
>> Like? I'd like to have a working rc1.
> 
> He didn't like my _CALL_DARWIN fix in patch 2/3 (which is totally
> independent of 3/3).
> 
> On patch 3/3 he didn't like my alignment macro. I don't have a better
> one though, suggestions or patches welcome. Ideal might be some
> ROUND_TO_ODD() macro, but the problem is that for Darwin/AIX where it's
> no-op it shouldn't result in a "statement without effect" warning.
> Therefore my do { } while (0) as opposed to ir = MACRO(ir).

static inline int round_reg_i64(int input_reg)
{
#ifdef WHATEVER_CONDITION
    if (input_reg % 2) {
        reg++;
    }
#endif

    return reg;
}

[...]

  ir = round_reg_i64(ir);

> 
> I do think though that any half-baked patch that doesn't regress is
> better than the current #error situation.

Yes, please! Let's get what we have in for rc1 and take it from there.


Alex




reply via email to

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