mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-16 12:24:03 +00:00
No longer referencing "shared memory" as this can confuse people. The memory is
clearly shared between processors if these instructions are being used, no further specification of what type of memory is necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40118 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -4841,7 +4841,7 @@ Handling</a> document. </p>
|
|||||||
provides an interface to the hardware, not an interface to the programmer. It
|
provides an interface to the hardware, not an interface to the programmer. It
|
||||||
is aimed at a low enough level to allow any programming models or APIs which
|
is aimed at a low enough level to allow any programming models or APIs which
|
||||||
need atomic behaviors to map cleanly onto it. It is also modeled primarily on
|
need atomic behaviors to map cleanly onto it. It is also modeled primarily on
|
||||||
hardware behavior. Just as hardware provides a "unviresal IR" for source
|
hardware behavior. Just as hardware provides a "universal IR" for source
|
||||||
languages, it also provides a starting point for developing a "universal"
|
languages, it also provides a starting point for developing a "universal"
|
||||||
atomic operation and synchronization IR.
|
atomic operation and synchronization IR.
|
||||||
</p>
|
</p>
|
||||||
@ -4873,8 +4873,8 @@ declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* <ptr>, i64 <cmp>
|
|||||||
</pre>
|
</pre>
|
||||||
<h5>Overview:</h5>
|
<h5>Overview:</h5>
|
||||||
<p>
|
<p>
|
||||||
This loads a value in shared memory and compares it to a given value. If they
|
This loads a value in memory and compares it to a given value. If they are
|
||||||
are equal, it stores a new value into the shared memory.
|
equal, it stores a new value into the memory.
|
||||||
</p>
|
</p>
|
||||||
<h5>Arguments:</h5>
|
<h5>Arguments:</h5>
|
||||||
<p>
|
<p>
|
||||||
@ -4887,10 +4887,10 @@ declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* <ptr>, i64 <cmp>
|
|||||||
<h5>Semantics:</h5>
|
<h5>Semantics:</h5>
|
||||||
<p>
|
<p>
|
||||||
This entire intrinsic must be executed atomically. It first loads the value
|
This entire intrinsic must be executed atomically. It first loads the value
|
||||||
in shared memory pointed to by <tt>ptr</tt> and compares it with the value
|
in memory pointed to by <tt>ptr</tt> and compares it with the value
|
||||||
<tt>cmp</tt>. If they are equal, <tt>val</tt> is stored into the shared
|
<tt>cmp</tt>. If they are equal, <tt>val</tt> is stored into the memory. The
|
||||||
memory. The loaded value is yielded in all cases. This provides the
|
loaded value is yielded in all cases. This provides the equivalent of an
|
||||||
equivalent of an atomic compare-and-swap operation within the SSA framework.
|
atomic compare-and-swap operation within the SSA framework.
|
||||||
</p>
|
</p>
|
||||||
<h5>Examples:</h5>
|
<h5>Examples:</h5>
|
||||||
<pre>
|
<pre>
|
||||||
@ -4928,9 +4928,9 @@ declare i64 @llvm.atomic.ls.i64.i64p.i64( i64* <ptr>, i64 <val> )
|
|||||||
</pre>
|
</pre>
|
||||||
<h5>Overview:</h5>
|
<h5>Overview:</h5>
|
||||||
<p>
|
<p>
|
||||||
This intrinsic loads the value stored in shared memory at <tt>ptr</tt> and
|
This intrinsic loads the value stored in memory at <tt>ptr</tt> and yields
|
||||||
yields the value from memory. It then stores the value in <tt>val</tt> in the
|
the value from memory. It then stores the value in <tt>val</tt> in the memory
|
||||||
shared memory at <tt>ptr</tt>.
|
at <tt>ptr</tt>.
|
||||||
</p>
|
</p>
|
||||||
<h5>Arguments:</h5>
|
<h5>Arguments:</h5>
|
||||||
<p>
|
<p>
|
||||||
@ -4982,7 +4982,7 @@ declare i64 @llvm.atomic.las.i64.i64p.i64( i64* <ptr>, i64 <delta> )
|
|||||||
</pre>
|
</pre>
|
||||||
<h5>Overview:</h5>
|
<h5>Overview:</h5>
|
||||||
<p>
|
<p>
|
||||||
This intrinsic adds <tt>delta</tt> to the value stored in shared memory at
|
This intrinsic adds <tt>delta</tt> to the value stored in memory at
|
||||||
<tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.
|
<tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.
|
||||||
</p>
|
</p>
|
||||||
<h5>Arguments:</h5>
|
<h5>Arguments:</h5>
|
||||||
@ -5029,8 +5029,8 @@ declare i64 @llvm.atomic.lss.i64.i64.i64( i64* <ptr>, i64 <delta> )
|
|||||||
</pre>
|
</pre>
|
||||||
<h5>Overview:</h5>
|
<h5>Overview:</h5>
|
||||||
<p>
|
<p>
|
||||||
This intrinsic subtracts <tt>delta</tt> from the value stored in shared
|
This intrinsic subtracts <tt>delta</tt> from the value stored in memory at
|
||||||
memory at <tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.
|
<tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.
|
||||||
</p>
|
</p>
|
||||||
<h5>Arguments:</h5>
|
<h5>Arguments:</h5>
|
||||||
<p>
|
<p>
|
||||||
|
Reference in New Issue
Block a user