> On 19 Jun 2015, at 09:42, Paolo Bonzini wrote:
>
>
>
> On 19/06/2015 09:40, Mark Burton wrote:
>>> On 19/06/2015 09:29, Mark Burton wrote:
Does anybody know if the current atomic_cmpxchg will support
64 bit on a (normal) 32 bit x86, or do we need to special
case that with cmpx
On 19/06/2015 09:40, Mark Burton wrote:
>> On 19/06/2015 09:29, Mark Burton wrote:
>>> Does anybody know if the current atomic_cmpxchg will support
>>> 64 bit on a (normal) 32 bit x86, or do we need to special
>>> case that with cmpxchg8b ? (I get the impression that it will
>>> automatically use
> On 19 Jun 2015, at 09:31, Paolo Bonzini wrote:
>
>
>
> On 19/06/2015 09:29, Mark Burton wrote:
>> Does anybody know if the current atomic_cmpxchg will support 64 bit
>> on a (normal) 32 bit x86, or do we need to special case that with
>> cmpxchg8b ? (I get the impression that it will automat
On 19/06/2015 09:29, Mark Burton wrote:
> Does anybody know if the current atomic_cmpxchg will support 64 bit
> on a (normal) 32 bit x86, or do we need to special case that with
> cmpxchg8b ? (I get the impression that it will automatically use
> cmpxchg8b, but not cmpxchg16b - but I’m by no mean
> On 18 Jun 2015, at 21:53, Peter Maydell wrote:
>
> On 18 June 2015 at 19:32, Mark Burton wrote:
>> for the 1<> a little worrying - I’ll check.
>>
>>> On 18 Jun 2015, at 17:56, Peter Maydell wrote:
>>>
>>> On 18 June 2015 at 16:44, wrote:
+uint64_t oldval, *p;
+p
On 18 June 2015 at 19:32, Mark Burton wrote:
> for the 1< little worrying - I’ll check.
>
>> On 18 Jun 2015, at 17:56, Peter Maydell wrote:
>>
>> On 18 June 2015 at 16:44, wrote:
>>> +uint64_t oldval, *p;
>>> +p = address_space_map(cs->as, paddr, &len, true);
>>> +if (le
for the 1< On 18 Jun 2015, at 17:56, Peter Maydell wrote:
>
> On 18 June 2015 at 16:44, wrote:
>> +uint64_t oldval, *p;
>> +p = address_space_map(cs->as, paddr, &len, true);
>> +if (len == 8 << size) {
>> +oldval = (uint64_t)env->exclusive_val;
>> +
On 18 June 2015 at 16:44, wrote:
> +uint64_t oldval, *p;
> +p = address_space_map(cs->as, paddr, &len, true);
> +if (len == 8 << size) {
> +oldval = (uint64_t)env->exclusive_val;
> +result = (atomic_cmpxchg(p, oldval, (uint64_t)newval) == oldval);
On 18/06/2015 17:44, fred.kon...@greensocs.com wrote:
> +hwaddr len = 8 << size;
Should be 1 << size, and likewise below in the "if".
Paolo
> +hwaddr paddr;
> +target_ulong page_size;
> +int prot;
> +
> +arm_exclusive_lock();
> +
> +if (env->exclusive_addr != addr) {
>
From: KONRAD Frederic
This mechanism replaces the existing load/store exclusive mechanism which seems
to be broken for multithread.
It follows the intention of the existing mechanism and stores the target address
and data values during a load operation and checks that they remain unchanged
before
10 matches
Mail list logo