[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4] target-sparc: Add and use CPU_FEATURE_CASA
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH v4] target-sparc: Add and use CPU_FEATURE_CASA |
Date: |
Fri, 14 Feb 2014 17:22:11 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
Am 14.02.2014 17:06, schrieb Sebastian Huber:
> The LEON3 processor has support for the CASA instruction which is
> normally only available for SPARC V9 processors. Binutils 2.24
> and GCC 4.9 will support this instruction for LEON3. GCC uses it to
> generate C11 atomic operations.
>
> The CAS synthetic instruction uses an ASI of 0x80. If TARGET_SPARC64 is
> not defined use a supervisor data load/store for an ASI of 0x80 in
> helper_ld_asi()/helper_st_asi(). The supervisor data load/store was
> choosen according to the LEON3 documentation.
>
> The ASI 0x80 is defined in the SPARC V9 manual, Table 12—Address Space
> Identifiers (ASIs). Here we have: 0x80, ASI_PRIMARY, Unrestricted
> access, Primary address space.
>
> Tested with the following program:
>
> #include <assert.h>
> #include <stdatomic.h>
>
> void test(void)
> {
> atomic_int a;
> int e;
> _Bool b;
>
> atomic_store(&a, 1);
> e = 1;
> b = atomic_compare_exchange_strong(&a, &e, 2);
> assert(b);
> assert(atomic_load(&a) == 2);
>
> atomic_store(&a, 3);
> e = 4;
> b = atomic_compare_exchange_strong(&a, &e, 5);
> assert(!b);
> assert(atomic_load(&a) == 3);
> }
>
> Tested also on a NGMP board with a LEON4 processor.
>
> v4: Fix coding style.
>
> Signed-off-by: Sebastian Huber <address@hidden>
> Reviewed-by: Fabien Chouteau <address@hidden>
Reviewed-by: Andreas Färber <address@hidden>
but please put change logs below --- next time. No v5 needed for that,
committer can fix.
Also in my theory your Signed-off-by should be last when you submit a
patch, in particular when you apply changes on top of what a reviewer
has reviewed.
Thanks,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg