1 ;------------------------------------------------------------------------------
3 ; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
4 ; Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
6 ; This program and the accompanying materials are licensed and made available
7 ; under the terms and conditions of the BSD License which accompanies this
8 ; distribution. The full text of the license may be found at
9 ; http://opensource.org/licenses/bsd-license.php.
11 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 ;------------------------------------------------------------------------------
18 ;------------------------------------------------------------------------------
22 ; IN UINTN Port, // rcx
23 ; IN UINTN Size, // rdx
24 ; OUT VOID *Buffer // r8
26 ;------------------------------------------------------------------------------
30 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
32 mov rdi, r8 ; restore rdi
36 ;------------------------------------------------------------------------------
40 ; IN UINTN Port, // rcx
41 ; IN UINTN Size, // rdx
42 ; OUT VOID *Buffer // r8
44 ;------------------------------------------------------------------------------
48 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
50 mov rdi, r8 ; restore rdi
54 ;------------------------------------------------------------------------------
58 ; IN UINTN Port, // rcx
59 ; IN UINTN Size, // rdx
60 ; OUT VOID *Buffer // r8
62 ;------------------------------------------------------------------------------
66 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
68 mov rdi, r8 ; restore rdi
72 ;------------------------------------------------------------------------------
76 ; IN UINTN Port, // rcx
77 ; IN UINTN Size, // rdx
78 ; IN VOID *Buffer // r8
80 ;------------------------------------------------------------------------------
84 xchg rsi, r8 ; rsi: buffer address; r8: save rsi
86 mov rsi, r8 ; restore rsi
90 ;------------------------------------------------------------------------------
94 ; IN UINTN Port, // rcx
95 ; IN UINTN Size, // rdx
96 ; IN VOID *Buffer // r8
98 ;------------------------------------------------------------------------------
102 xchg rsi, r8 ; rsi: buffer address; r8: save rsi
104 mov rsi, r8 ; restore rsi
108 ;------------------------------------------------------------------------------
112 ; IN UINTN Port, // rcx
113 ; IN UINTN Size, // rdx
114 ; IN VOID *Buffer // r8
116 ;------------------------------------------------------------------------------
120 xchg rsi, r8 ; rsi: buffer address; r8: save rsi
122 mov rsi, r8 ; restore rsi