From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cXwVS-0002r7-8T for qemu-devel@nongnu.org; Sun, 29 Jan 2017 15:55:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cXwVP-0006Q0-7P for qemu-devel@nongnu.org; Sun, 29 Jan 2017 15:55:26 -0500 Received: from mail-yb0-x243.google.com ([2607:f8b0:4002:c09::243]:34207) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cXwVP-0006Pq-1n for qemu-devel@nongnu.org; Sun, 29 Jan 2017 15:55:23 -0500 Received: by mail-yb0-x243.google.com with SMTP id w194so24725417ybe.1 for ; Sun, 29 Jan 2017 12:55:22 -0800 (PST) References: <20170127103922.19658-1-alex.bennee@linaro.org> <20170127103922.19658-5-alex.bennee@linaro.org> From: Pranith Kumar In-reply-to: <20170127103922.19658-5-alex.bennee@linaro.org> Date: Sun, 29 Jan 2017 15:55:20 -0500 Message-ID: <8760kxr3gn.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v8 04/25] tcg: move TCG_MO/BAR types into own file List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alex =?utf-8?Q?Benn=C3=A9e?= Cc: mttcg@listserver.greensocs.com, qemu-devel@nongnu.org, fred.konrad@greensocs.com, a.rigo@virtualopensystems.com, cota@braap.org, nikunj@linux.vnet.ibm.com, mark.burton@greensocs.com, pbonzini@redhat.com, jan.kiszka@siemens.com, serge.fdrv@gmail.com, rth@twiddle.net, peter.maydell@linaro.org, claudio.fontana@huawei.com, bamvor.zhangjian@linaro.org Alex Bennée writes: > We'll be using the memory ordering definitions to define values for > both the host and guest. To avoid fighting with circular header > dependencies just move these types into their own minimal header. > > Signed-off-by: Alex Bennée > Reviewed-by: Richard Henderson > --- > tcg/tcg-mo.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ > tcg/tcg.h | 18 +----------------- > 2 files changed, 46 insertions(+), 17 deletions(-) > create mode 100644 tcg/tcg-mo.h > > diff --git a/tcg/tcg-mo.h b/tcg/tcg-mo.h > new file mode 100644 > index 0000000000..429b022561 > --- /dev/null > +++ b/tcg/tcg-mo.h > @@ -0,0 +1,45 @@ > +/* > + * Tiny Code Generator for QEMU > + * > + * Copyright (c) 2008 Fabrice Bellard > + * > + * Permission is hereby granted, free of charge, to any person obtaining a copy > + * of this software and associated documentation files (the "Software"), to deal > + * in the Software without restriction, including without limitation the rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > + > +#ifndef TCG_MO_H > +#define TCG_MO_H > + > +typedef enum { > + /* Used to indicate the type of accesses on which ordering > + is to be ensured. Modeled after SPARC barriers. */ > + TCG_MO_LD_LD = 0x01, > + TCG_MO_ST_LD = 0x02, > + TCG_MO_LD_ST = 0x04, > + TCG_MO_ST_ST = 0x08, > + TCG_MO_ALL = 0x0F, /* OR of the above */ > + > + /* Used to indicate the kind of ordering which is to be ensured by the > + instruction. These types are derived from x86/aarch64 instructions. > + It should be noted that these are different from C11 semantics. */ > + TCG_BAR_LDAQ = 0x10, /* Following ops will not come forward */ > + TCG_BAR_STRL = 0x20, /* Previous ops will not be delayed */ > + TCG_BAR_SC = 0x30, /* No ops cross barrier; OR of the above */ > +} TCGBar; > + > +#endif /* TCG_MO_H */ > diff --git a/tcg/tcg.h b/tcg/tcg.h > index 631c6f69b1..f946452049 100644 > --- a/tcg/tcg.h > +++ b/tcg/tcg.h > @@ -29,6 +29,7 @@ > #include "cpu.h" > #include "exec/tb-context.h" > #include "qemu/bitops.h" > +#include "tcg-mo.h" > #include "tcg-target.h" > > /* XXX: make safe guess about sizes */ > @@ -498,23 +499,6 @@ static inline intptr_t QEMU_ARTIFICIAL GET_TCGV_PTR(TCGv_ptr t) > #define TCG_CALL_DUMMY_TCGV MAKE_TCGV_I32(-1) > #define TCG_CALL_DUMMY_ARG ((TCGArg)(-1)) > > -typedef enum { > - /* Used to indicate the type of accesses on which ordering > - is to be ensured. Modeled after SPARC barriers. */ > - TCG_MO_LD_LD = 0x01, > - TCG_MO_ST_LD = 0x02, > - TCG_MO_LD_ST = 0x04, > - TCG_MO_ST_ST = 0x08, > - TCG_MO_ALL = 0x0F, /* OR of the above */ Can you please add the following comment: This is of the form TCG_MO_A_B where A is before B in program order. Thanks, -- Pranith