All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Gerst <brgerst@gmail.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Jesse Brandeburg <jesse.brandeburg@intel.com>,
	Sedat Dilek <sedat.dilek@gmail.com>,
	"kernelci . org bot" <bot@kernelci.org>,
	Andy Shevchenko <andriy.shevchenko@intel.com>,
	"H . Peter Anvin" <hpa@zytor.com>,
	Ilie Halip <ilie.halip@gmail.com>,
	"maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
	<x86@kernel.org>, Marco Elver <elver@google.com>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Daniel Axtens <dja@axtens.net>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	clang-built-linux <clang-built-linux@googlegroups.com>
Subject: Re: [PATCH v5] x86: bitops: fix build regression
Date: Sat, 9 May 2020 11:43:27 -0400	[thread overview]
Message-ID: <CAMzpN2j4PhMMxZ6SOGxV9SfdbEZyuTNM-qNSTCZ8dv+irzi+4A@mail.gmail.com> (raw)
In-Reply-To: <CAHp75Vcsi9o2eUbyozhmPEz6Tfd_6ZFk2q-vcdrm9QxcVPQwMA@mail.gmail.com>

On Sat, May 9, 2020 at 8:20 AM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
>
> On Fri, May 8, 2020 at 9:35 PM Nick Desaulniers <ndesaulniers@google.com> wrote:
> >
> > This is easily reproducible via CC=clang+CONFIG_STAGING=y+CONFIG_VT6656=m.
> >
> > It turns out that if your config tickles __builtin_constant_p via
> > differences in choices to inline or not, these statements produce
> > invalid assembly:
> >
> > $ cat foo.c
> > long a(long b, long c) {
> >   asm("orb\t%1, %0" : "+q"(c): "r"(b));
> >   return c;
> > }
> > $ gcc foo.c
> > foo.c: Assembler messages:
> > foo.c:2: Error: `%rax' not allowed with `orb'
> >
> > Use the `%b` "x86 Operand Modifier" to instead force register allocation
> > to select a lower-8-bit GPR operand.
> >
> > The "q" constraint only has meaning on -m32 otherwise is treated as
> > "r". Not all GPRs have low-8-bit aliases for -m32.
> >
>
> Looks very good!
> One question though, does it work with minimum supported version of gcc?

Yes.  The operand width modifiers have been around a long time but not
well documented until more recently.

--
Brian Gerst

  reply	other threads:[~2020-05-09 15:43 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-05 17:44 [PATCH] x86: bitops: fix build regression Nick Desaulniers
2020-05-05 18:07 ` hpa
2020-05-05 18:22   ` Nick Desaulniers
2020-05-07 11:34   ` Peter Zijlstra
2020-05-07 14:00     ` Brian Gerst
2020-05-07 19:19       ` Nick Desaulniers
2020-05-07 22:29         ` Nick Desaulniers
2020-05-08  1:57           ` Brian Gerst
2020-05-08 17:21             ` Nick Desaulniers
2020-05-08 17:31               ` H. Peter Anvin
2020-05-08 18:05                 ` [PATCH v3] " Nick Desaulniers
2020-05-08 18:08                   ` Nick Desaulniers
2020-05-08 18:22                   ` Brian Gerst
2020-05-08 18:28                     ` [PATCH v4] " Nick Desaulniers
2020-05-08 18:32                       ` [PATCH v5] " Nick Desaulniers
2020-05-08 20:28                         ` Nathan Chancellor
2020-05-08 23:47                           ` Jesse Brandeburg
2020-05-09  4:44                             ` Sedat Dilek
2020-05-09 12:20                         ` Andy Shevchenko
2020-05-09 15:43                           ` Brian Gerst [this message]
2020-05-11 17:22                           ` Nick Desaulniers
2020-05-10 13:54                         ` David Laight
2020-05-11 18:52                         ` Brian Gerst
2020-05-14 23:47                           ` Nick Desaulniers
2020-05-10 11:59                 ` [PATCH] " David Laight
2020-05-10 12:33                   ` hpa
2020-05-07 19:29     ` hpa
2020-05-06  4:30 ` Nathan Chancellor
2020-05-06  9:22   ` Sedat Dilek
2020-05-06 15:41   ` Nathan Chancellor
2020-05-06 16:37   ` Nick Desaulniers
2020-05-06 16:55     ` Ilie Halip
2020-05-06 17:05       ` [PATCH v2] " Nick Desaulniers
2020-05-07  6:18 ` [PATCH] " Brian Gerst
2020-05-07  7:02   ` hpa
2020-05-07 13:32     ` Brian Gerst
2020-05-07 15:09       ` David Laight
2020-05-07 19:31         ` hpa
2020-05-07 19:29       ` hpa
2020-05-07  7:44   ` David Laight
2020-05-07  7:59     ` hpa
2020-05-07  8:35       ` David Laight
2020-05-07  8:38         ` hpa
2020-05-07  9:17     ` Andy Shevchenko
2020-05-07 19:22   ` Nick Desaulniers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMzpN2j4PhMMxZ6SOGxV9SfdbEZyuTNM-qNSTCZ8dv+irzi+4A@mail.gmail.com \
    --to=brgerst@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@intel.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=aryabinin@virtuozzo.com \
    --cc=bot@kernelci.org \
    --cc=bp@alien8.de \
    --cc=clang-built-linux@googlegroups.com \
    --cc=dja@axtens.net \
    --cc=elver@google.com \
    --cc=hpa@zytor.com \
    --cc=ilie.halip@gmail.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=mingo@redhat.com \
    --cc=ndesaulniers@google.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=sedat.dilek@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.