[PATCH]: powerpc documentation: Clarify why twi appears in the i/o macros.

Paul Mackerras paulus at samba.org
Sat Dec 9 11:19:23 EST 2006


Segher Boessenkool writes:

> If you argue it is *not* a branch, where in the architecture
> documentation can we find any language that gives us the
> guarantee we depend on here?

isync is context synchronizing.  In the definition of context
synchronization, it says "2.  The operation is not initiated, or in
the case of isync, does not complete, until all instructions already
in execution have completed to a point at which they have reported all
exceptions they will cause".  The twi conditionally causes an
exception depending on the data from the previous load, therefore it
cannot complete to a point at which is has reported all exceptions it
will cause until it sees the data from the load.  Therefore the isync
cannot complete (and allow following instructions to start) until the
data from the load has returned.

I once asked Ed Silha (one of the PowerPC architects) whether this
reasoning was good, and he agreed it was.

Paul.




More information about the Linuxppc-dev mailing list