From: John Criswell Date: Fri, 9 Apr 2004 15:23:37 +0000 (+0000) Subject: Added the llvm.readport and llvm.writeport intrinsics. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=cfd3baccce806243243e8ad6943a9208f737f62a;p=oota-llvm.git 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 --- diff --git a/docs/LangRef.html b/docs/LangRef.html index 60dba677ba5..e6cd7947a24 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -101,6 +101,8 @@
  1. 'llvm.returnaddress' Intrinsic
  2. 'llvm.frameaddress' Intrinsic
  3. +
  4. 'llvm.readport' Intrinsic
  5. +
  6. 'llvm.writeport' Intrinsic
  • Standard C Library Intrinsics @@ -1996,6 +1998,95 @@ source-language caller.

    + + + +
    + +
    Syntax:
    +
    +  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>)
    +
    + +
    Overview:
    + +

    +The 'llvm.readport' intrinsic reads data from the specified I/O port. +

    + +
    Arguments:
    + +

    +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. +

    + +
    Semantics:
    + +

    +The 'llvm.readport' intrinsic reads data from the I/O port specified +by address 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. +

    + +
    + + + + +
    + +
    Syntax:
    +
    +  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>)
    +
    + +
    Overview:
    + +

    +The 'llvm.writeport' intrinsic writes data to the specified I/O port. +

    + +
    Arguments:
    + +

    +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. +

    + +

    +The second argument is the value to write to the I/O port. +

    + +
    Semantics:
    + +

    +The 'llvm.writeport' intrinsic writes value to the I/O port +specified by address. 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. +

    + +