mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 09:54:09 +00:00
document the forthcoming blockaddress constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85306 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
90d7dcfdd9
commit
c6f44369c3
@ -83,6 +83,7 @@
|
|||||||
<li><a href="#complexconstants">Complex Constants</a></li>
|
<li><a href="#complexconstants">Complex Constants</a></li>
|
||||||
<li><a href="#globalconstants">Global Variable and Function Addresses</a></li>
|
<li><a href="#globalconstants">Global Variable and Function Addresses</a></li>
|
||||||
<li><a href="#undefvalues">Undefined Values</a></li>
|
<li><a href="#undefvalues">Undefined Values</a></li>
|
||||||
|
<li><a href="#blockaddress">Address of Basic Block</a></li>
|
||||||
<li><a href="#constantexprs">Constant Expressions</a></li>
|
<li><a href="#constantexprs">Constant Expressions</a></li>
|
||||||
<li><a href="#metadata">Embedded Metadata</a></li>
|
<li><a href="#metadata">Embedded Metadata</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
@ -2170,6 +2171,29 @@ has undefined behavior.</p>
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- ======================================================================= -->
|
||||||
|
<div class="doc_subsection"><a name="blockaddress">Address of Basic
|
||||||
|
Block</a></div>
|
||||||
|
<div class="doc_text">
|
||||||
|
|
||||||
|
<p><b><tt>blockaddress(@function, %block)</tt></b></p>
|
||||||
|
|
||||||
|
<p>The '<tt>blockaddress</tt>' constant computes the address of the specified
|
||||||
|
basic block in the specified function, and always has an i8* type.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>This value only has defined behavior when used as an operand to the
|
||||||
|
'<a href="#i_indbr"><tt>indbr</tt></a>' instruction or for comparisons
|
||||||
|
against null. Pointer equality tests between labels addresses is undefined
|
||||||
|
behavior - though, again, comparison against null is ok, and no label is
|
||||||
|
equal to the null pointer. Some targets may provide defined semantics when
|
||||||
|
using the value as the operand to an inline assembly, but that is target
|
||||||
|
specific.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- ======================================================================= -->
|
<!-- ======================================================================= -->
|
||||||
<div class="doc_subsection"><a name="constantexprs">Constant Expressions</a>
|
<div class="doc_subsection"><a name="constantexprs">Constant Expressions</a>
|
||||||
</div>
|
</div>
|
||||||
@ -2688,7 +2712,8 @@ IfUnequal:
|
|||||||
|
|
||||||
<p>The '<tt>indbr</tt>' instruction implements an indirect branch to a label
|
<p>The '<tt>indbr</tt>' instruction implements an indirect branch to a label
|
||||||
within the current function, whose address is specified by
|
within the current function, whose address is specified by
|
||||||
"<tt>address</tt>".</p>
|
"<tt>address</tt>". Address must be derived from a <a
|
||||||
|
href="#blockaddress">blockaddress</a> constant.</p>
|
||||||
|
|
||||||
<h5>Arguments:</h5>
|
<h5>Arguments:</h5>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user