__INSN_BARRIER(3)       NetBSD Library Functions Manual      __INSN_BARRIER(3)

NAME
     __insn_barrier -- compiler reorder barrier

SYNOPSIS
     #include <sys/cdefs.h>

     void
     __insn_barrier();

DESCRIPTION
     The __insn_barrier() macro prevents GCC from moving code across the bar-
     rier.  In other words, the compiler is not allowed to reorder read and
     write commands below the barrier with the code preceding the barrier.
     Like with the volatile type qualifier, __insn_barrier() may be necessary
     in some corner cases to prevent the compiler from misoptimizing.

SEE ALSO
     gcc(1), cdefs(3), mb(9)

     Paul E. McKenney, Memory Barriers: a Hardware View for Software Hackers,
     June 7, 2010.

HISTORY
     The __insn_barrier() macro first appeared in NetBSD 2.0.

NetBSD 5.0                      January 2, 2011                     NetBSD 5.0