From: John Criswell
+ 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>) ++ +
+The 'llvm.readport' intrinsic reads data from the specified I/O port. +
+ ++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. +
+ ++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. +
+ ++ 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>) ++ +
+The 'llvm.writeport' intrinsic writes data to the specified I/O port. +
+ ++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. +
+ ++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. +
+ +