mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
remove the read/write port/io intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -143,13 +143,6 @@
|
||||
<li><a href="#i_readcyclecounter"><tt>llvm.readcyclecounter</tt>' Intrinsic</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><a href="#int_os">Operating System Intrinsics</a>
|
||||
<ol>
|
||||
<li><a href="#i_readport">'<tt>llvm.readport</tt>' Intrinsic</a></li>
|
||||
<li><a href="#i_writeport">'<tt>llvm.writeport</tt>' Intrinsic</a></li>
|
||||
<li><a href="#i_readio">'<tt>llvm.readio</tt>' Intrinsic</a></li>
|
||||
<li><a href="#i_writeio">'<tt>llvm.writeio</tt>' Intrinsic</a></li>
|
||||
</ol>
|
||||
<li><a href="#int_libc">Standard C Library Intrinsics</a>
|
||||
<ol>
|
||||
<li><a href="#i_memcpy">'<tt>llvm.memcpy.*</tt>' Intrinsic</a></li>
|
||||
@@ -3266,199 +3259,6 @@ system wide value. On backends without support, this is lowered to a constant 0
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="int_os">Operating System Intrinsics</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
<p>
|
||||
These intrinsics are provided by LLVM to support the implementation of
|
||||
operating system level code.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="i_readport">'<tt>llvm.readport</tt>' Intrinsic</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<h5>Syntax:</h5>
|
||||
<pre>
|
||||
declare <integer type> %llvm.readport (<integer type> <address>)
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.readport</tt>' intrinsic reads data from the specified hardware
|
||||
I/O port.
|
||||
</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
|
||||
<p>
|
||||
The argument to this intrinsic indicates the hardware I/O address from which
|
||||
to read the data. The address is in the hardware I/O address namespace (as
|
||||
opposed to being a memory location for memory mapped I/O).
|
||||
</p>
|
||||
|
||||
<h5>Semantics:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.readport</tt>' intrinsic reads data from the hardware I/O port
|
||||
specified by <i>address</i> and returns the value. The address and return
|
||||
value must be integers, but the size is dependent upon the platform upon which
|
||||
the program is code generated. For example, on x86, the address must be an
|
||||
unsigned 16-bit value, and the return value must be 8, 16, or 32 bits.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="i_writeport">'<tt>llvm.writeport</tt>' Intrinsic</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<h5>Syntax:</h5>
|
||||
<pre>
|
||||
call void (<integer type>, <integer type>)*
|
||||
%llvm.writeport (<integer type> <value>,
|
||||
<integer type> <address>)
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.writeport</tt>' intrinsic writes data to the specified hardware
|
||||
I/O port.
|
||||
</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
|
||||
<p>
|
||||
The first argument is the value to write to the I/O port.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The second argument indicates the hardware I/O address to which data should be
|
||||
written. The address is in the hardware I/O address namespace (as opposed to
|
||||
being a memory location for memory mapped I/O).
|
||||
</p>
|
||||
|
||||
<h5>Semantics:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.writeport</tt>' intrinsic writes <i>value</i> to the I/O port
|
||||
specified by <i>address</i>. The address and value must be integers, but the
|
||||
size is dependent upon the platform upon which the program is code generated.
|
||||
For example, on x86, the address must be an unsigned 16-bit value, and the
|
||||
value written must be 8, 16, or 32 bits in length.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="i_readio">'<tt>llvm.readio</tt>' Intrinsic</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<h5>Syntax:</h5>
|
||||
<pre>
|
||||
declare <result> %llvm.readio (<ty> * <pointer>)
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.readio</tt>' intrinsic reads data from a memory mapped I/O
|
||||
address.
|
||||
</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
|
||||
<p>
|
||||
The argument to this intrinsic is a pointer indicating the memory address from
|
||||
which to read the data. The data must be a
|
||||
<a href="#t_firstclass">first class</a> type.
|
||||
</p>
|
||||
|
||||
<h5>Semantics:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.readio</tt>' intrinsic reads data from a memory mapped I/O
|
||||
location specified by <i>pointer</i> and returns the value. The argument must
|
||||
be a pointer, and the return value must be a
|
||||
<a href="#t_firstclass">first class</a> type. However, certain architectures
|
||||
may not support I/O on all first class types. For example, 32-bit processors
|
||||
may only support I/O on data types that are 32 bits or less.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This intrinsic enforces an in-order memory model for llvm.readio and
|
||||
llvm.writeio calls on machines that use dynamic scheduling. Dynamically
|
||||
scheduled processors may execute loads and stores out of order, re-ordering at
|
||||
run time accesses to memory mapped I/O registers. Using these intrinsics
|
||||
ensures that accesses to memory mapped I/O registers occur in program order.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="i_writeio">'<tt>llvm.writeio</tt>' Intrinsic</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<h5>Syntax:</h5>
|
||||
<pre>
|
||||
declare void %llvm.writeio (<ty1> <value>, <ty2> * <pointer>)
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.writeio</tt>' intrinsic writes data to the specified memory
|
||||
mapped I/O address.
|
||||
</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
|
||||
<p>
|
||||
The first argument is the value to write to the memory mapped I/O location.
|
||||
The second argument is a pointer indicating the memory address to which the
|
||||
data should be written.
|
||||
</p>
|
||||
|
||||
<h5>Semantics:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.writeio</tt>' intrinsic writes <i>value</i> to the memory mapped
|
||||
I/O address specified by <i>pointer</i>. The value must be a
|
||||
<a href="#t_firstclass">first class</a> type. However, certain architectures
|
||||
may not support I/O on all first class types. For example, 32-bit processors
|
||||
may only support I/O on data types that are 32 bits or less.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This intrinsic enforces an in-order memory model for llvm.readio and
|
||||
llvm.writeio calls on machines that use dynamic scheduling. Dynamically
|
||||
scheduled processors may execute loads and stores out of order, re-ordering at
|
||||
run time accesses to memory mapped I/O registers. Using these intrinsics
|
||||
ensures that accesses to memory mapped I/O registers occur in program order.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="int_libc">Standard C Library Intrinsics</a>
|
||||
|
||||
Reference in New Issue
Block a user