qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] MTTCG for ppc64 (removed from ppc-for-2.10)


From: Nikunj A Dadhania
Subject: Re: [Qemu-ppc] MTTCG for ppc64 (removed from ppc-for-2.10)
Date: Mon, 24 Apr 2017 16:49:50 +0530
User-agent: Notmuch/0.23.5 (https://notmuchmail.org) Emacs/25.1.1 (x86_64-redhat-linux-gnu)

Nikunj A Dadhania <address@hidden> writes:

> Nikunj A Dadhania <address@hidden> writes:
>
>>>>
>>>>
>>>> ./configure --cc=clang --host-cc=clang  --target-list=ppc64-softmmu
>>>
>>> Ah!  This is good information to have.  Let's see if one of the sanitizers 
>>> or 
>>> valgrind can spot the error or miscompilation...
>>
>> Some interesting code generated for stdcx.:
>>
>>     0x0000000030012624:  stdcx.  r0,0,r3
>>
>> With code compiled using GCC
>>      ---- 0000000030012624
>>      [...]
>>      call raise_exception_err,$0x20,$0,env,tmp0,tmp1
>>      set_label $L1
>>      brcond_i64 loc4,reserve_addr,ne,$L2
>>      movi_i32 tmp0,$0x7b7
>>      call 
>> atomic_cmpxchgq_be,$0x20,$1,tmp2,env,reserve_addr,reserve_val,r0,tmp0
>>      setcond_i64 tmp2,tmp2,reserve_val,eq
>>      [...]
>>      
>> With code compiled using clang
>>      ---- 0000000030012624
>>      [...]
>>      call raise_exception_err,$0x20,$0,env,tmp0,tmp1
>>      set_label $L1
>>      brcond_i64 loc4,reserve_addr,ne,$L2
>>      call exit_atomic,$0x20,$0,env
>>      setcond_i64 tmp2,tmp2,reserve_val,eq
>>      [...]
>>
>> In case of clang, movi_i32 and atomic_cmpxchgq_be is missing, and I see
>> a call to exit_atomic.
>
> And that is because CONFIG_ATOMIC64 is not defined while using clang !

And if I force to define CONFIG_ATOMIC64:

diff --git a/configure b/configure
index d31a3e8..1cb9f82 100755
--- a/configure
+++ b/configure
@@ -4629,6 +4629,7 @@ EOF
 if compile_prog "" "" ; then
   atomic64=yes
 fi
+atomic64=yes
 
 ########################################
 # check if getauxval is available.


I boot fine without. Need to figure out why the code in configure isn't
working.

Regards
Nikunj




reply via email to

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