From 183402a788cd769e039f71b21bef621fbcafd346 Mon Sep 17 00:00:00 2001 From: John Criswell Date: Mon, 12 Apr 2004 15:02:16 +0000 Subject: [PATCH] Added initial design for the llvm.readio and llvm.writeio intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12864 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.html | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/docs/LangRef.html b/docs/LangRef.html index 84172594c15..76655ad4fc8 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -107,6 +107,8 @@
  1. 'llvm.readport' Intrinsic
  2. 'llvm.writeport' Intrinsic
  3. +
  4. 'llvm.readio' Intrinsic
  5. +
  6. 'llvm.writeio' Intrinsic
  • Standard C Library Intrinsics
      @@ -2013,6 +2015,7 @@ operating system level code.

      +
      'llvm.readport' Intrinsic @@ -2095,6 +2098,99 @@ value written must be 8, 16, or 32 bits in length.
      + + + +
      + +
      Syntax:
      +
      +  call <integer type> (<integer type>)* %llvm.readio (<integer type> <address>)
      +
      + +
      Overview:
      + +

      +The 'llvm.readio' intrinsic reads data from a memory mapped I/O +address. +

      + +
      Arguments:
      + +

      +The argument to this intrinsic indicates the memory address from which to read +the data. +

      + +
      Semantics:
      + +

      +The 'llvm.readio' intrinsic reads data from a memory mapped I/O +location specified by address and returns the value. The address and +return value must be integers, but the size allowed for each is dependent upon +the platform upon which the program is code generated. +

      + +

      +This intrinsic ensures that the I/O data read occurs in instruction order in +relation to other I/O data reads and writes (as opposed to a normal load, where +hardware scheduling can re-arrange the actual memory accesses to occur out of +order). +

      + +
      + + + + +
      + +
      Syntax:
      +
      +  call void (<integer type>, <integer type>)* %llvm.writeio (<integer type> <value>, <integer type> <address>)
      +
      + +
      Overview:
      + +

      +The 'llvm.writeio' intrinsic writes data to the specified memory +mapped I/O address. +

      + +
      Arguments:
      + +

      +The first argument to this intrinsic indicates the memory address to which data +should be written. +

      + +

      +The second argument is the value to write to the memory mapped I/O location. +

      + +
      Semantics:
      + +

      +The 'llvm.writeio' intrinsic writes value to the memory mapped +I/O address 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. +

      + +

      +This intrinsic ensures that the I/O data write occurs in instruction order in +relation to other I/O data reads and writes (as opposed to a normal store, +where hardware scheduling can re-arrange the actual memory accesses to occur +out of order). +

      + +
      + +