1 ;------------------------------------------------------------------------------
3 ; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
5 ; This program and the accompanying materials are licensed and made available
6 ; under the terms and conditions of the BSD License which accompanies this
7 ; distribution. The full text of the license may be found at
8 ; http://opensource.org/licenses/bsd-license.php.
10 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 ;------------------------------------------------------------------------------
18 ;------------------------------------------------------------------------------
22 ; IN UINTN Port, // rcx
23 ; IN UINTN Size, // rdx
24 ; IN VOID *Buffer // r8
26 ;------------------------------------------------------------------------------
27 global ASM_PFX(IoReadFifo8)
31 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
33 mov rdi, r8 ; restore rdi
36 ;------------------------------------------------------------------------------
40 ; IN UINTN Port, // rcx
41 ; IN UINTN Size, // rdx
42 ; IN VOID *Buffer // r8
44 ;------------------------------------------------------------------------------
45 global ASM_PFX(IoReadFifo16)
46 ASM_PFX(IoReadFifo16):
49 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
51 mov rdi, r8 ; restore rdi
54 ;------------------------------------------------------------------------------
58 ; IN UINTN Port, // rcx
59 ; IN UINTN Size, // rdx
60 ; IN VOID *Buffer // r8
62 ;------------------------------------------------------------------------------
63 global ASM_PFX(IoReadFifo32)
64 ASM_PFX(IoReadFifo32):
67 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
69 mov rdi, r8 ; restore rdi
72 ;------------------------------------------------------------------------------
76 ; IN UINTN Port, // rcx
77 ; IN UINTN Size, // rdx
78 ; IN VOID *Buffer // r8
80 ;------------------------------------------------------------------------------
81 global ASM_PFX(IoWriteFifo8)
82 ASM_PFX(IoWriteFifo8):
85 xchg rsi, r8 ; rsi: buffer address; r8: save rsi
87 mov rsi, r8 ; restore rsi
90 ;------------------------------------------------------------------------------
94 ; IN UINTN Port, // rcx
95 ; IN UINTN Size, // rdx
96 ; IN VOID *Buffer // r8
98 ;------------------------------------------------------------------------------
99 global ASM_PFX(IoWriteFifo16)
100 ASM_PFX(IoWriteFifo16):
103 xchg rsi, r8 ; rsi: buffer address; r8: save rsi
105 mov rsi, r8 ; restore rsi
108 ;------------------------------------------------------------------------------
112 ; IN UINTN Port, // rcx
113 ; IN UINTN Size, // rdx
114 ; IN VOID *Buffer // r8
116 ;------------------------------------------------------------------------------
117 global ASM_PFX(IoWriteFifo32)
118 ASM_PFX(IoWriteFifo32):
121 xchg rsi, r8 ; rsi: buffer address; r8: save rsi
123 mov rsi, r8 ; restore rsi