mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Added the llvm.readport and llvm.writeport intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12788 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aee0cf3fca
commit
cfd3baccce
@ -101,6 +101,8 @@
|
||||
<ol>
|
||||
<li><a href="#i_returnaddress">'<tt>llvm.returnaddress</tt>' Intrinsic</a></li>
|
||||
<li><a href="#i_frameaddress">'<tt>llvm.frameaddress</tt>' Intrinsic</a></li>
|
||||
<li><a href="#i_readport">'<tt>llvm.readport</tt>' Intrinsic</a></li>
|
||||
<li><a href="#i_writeport">'<tt>llvm.writeport</tt>' Intrinsic</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><a href="#int_libc">Standard C Library Intrinsics</a>
|
||||
@ -1996,6 +1998,95 @@ source-language caller.
|
||||
</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>
|
||||
call sbyte (ushort address)* %llvm.readport(ushort <address>)
|
||||
call ubyte (ushort address)* %llvm.readport(ushort <address>)
|
||||
call short (ushort address)* %llvm.readport(ushort <address>)
|
||||
call ushort (ushort address)* %llvm.readport(ushort <address>)
|
||||
call int (ushort address)* %llvm.readport(ushort <address>)
|
||||
call uint (ushort address)* %llvm.readport(ushort <address>)
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.readport</tt>' intrinsic reads data from the specified I/O port.
|
||||
</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
|
||||
<p>
|
||||
The argument to this intrinsic indicates the I/O address from which to read
|
||||
the data. The address is in the I/O address namespace; it is not a memory
|
||||
location.
|
||||
</p>
|
||||
|
||||
<h5>Semantics:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.readport</tt>' intrinsic reads data from the 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 a
|
||||
ushort, 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 (ushort address, sbyte value)* %llvm.writeport(ushort <address>, sbyte <value>)
|
||||
call void (ushort address, ubyte value)* %llvm.writeport(ushort <address>, ubyte <value>)
|
||||
call void (ushort address, short value)* %llvm.writeport(ushort <address>, short <value>)
|
||||
call void (ushort address, ushort value)* %llvm.writeport(ushort <address>, ushort <value>)
|
||||
call void (ushort address, int value)* %llvm.writeport(ushort <address>, int <value>)
|
||||
call void (ushort address, uint value)* %llvm.writeport(ushort <address>, uint <value>)
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
|
||||
<p>
|
||||
The '<tt>llvm.writeport</tt>' intrinsic writes data to the specified I/O port.
|
||||
</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
|
||||
<p>
|
||||
The first argument to this intrinsic indicates the I/O address to which data
|
||||
should be written. The address is in the I/O address namespace; it is not a
|
||||
memory location.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The second argument is the value to write to the I/O port.
|
||||
</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 a ushort, and the value written must
|
||||
be 8, 16, or 32 bits in length.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
|
Loading…
Reference in New Issue
Block a user