mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[LangRef] Add 'callbr' instruction to the 'blockaddress' section.
llvm-svn: 355379
This commit is contained in:
parent
7f925b398f
commit
410a517f82
@ -3294,14 +3294,14 @@ basic block in the specified function, and always has an ``i8*`` type.
|
||||
Taking the address of the entry block is illegal.
|
||||
|
||||
This value only has defined behavior when used as an operand to the
|
||||
':ref:`indirectbr <i_indirectbr>`' instruction, or for comparisons
|
||||
against null. Pointer equality tests between labels addresses results in
|
||||
undefined behavior --- though, again, comparison against null is ok, and
|
||||
no label is equal to the null pointer. This may be passed around as an
|
||||
':ref:`indirectbr <i_indirectbr>`' or ':ref:`callbr <i_callbr>`'instruction, or
|
||||
for comparisons against null. Pointer equality tests between labels addresses
|
||||
results in undefined behavior --- though, again, comparison against null is ok,
|
||||
and no label is equal to the null pointer. This may be passed around as an
|
||||
opaque pointer sized value as long as the bits are not inspected. This
|
||||
allows ``ptrtoint`` and arithmetic to be performed on these values so
|
||||
long as the original value is reconstituted before the ``indirectbr``
|
||||
instruction.
|
||||
long as the original value is reconstituted before the ``indirectbr`` or
|
||||
``callbr`` instruction.
|
||||
|
||||
Finally, some targets may provide defined semantics when using the value
|
||||
as the operand to an inline assembly, but that is target specific.
|
||||
|
Loading…
x
Reference in New Issue
Block a user