Thread (121 messages) 121 messages, 13 authors, 2021-09-24

Re: [RFC] LKMM: Add volatile_if()

From: Segher Boessenkool <hidden>
Date: 2021-06-07 14:17:16
Also in: linux-arch, lkml

On Sun, Jun 06, 2021 at 04:37:29PM -0700, Paul E. McKenney wrote:
quoted
quoted
The barrier() thing can work - all we need to do is to simply make it
impossible for gcc to validly create anything but a conditional
branch.
And the only foolproof way of doing that is by writing a branch.
[ ... ]
quoted
I am saying that if you depend on that some C code you write will result
in some particular machine code, without actually *forcing* the compiler
to output that exact machine code, then you will be disappointed.  Maybe
not today, and maybe it will take years, if you are lucky.

(s/forcing/instructing/ of course, compilers have feelings too!)
OK, I will bite...

What would you suggest as a way of instructing the compiler to emit the
conditional branch that we are looking for?
You write it in the assembler code.

Yes, it sucks.  But it is the only way to get a branch if you really
want one.  Now, you do not really need one here anyway, so there may be
some other way to satisfy the actual requirements.


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help