]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Library/QemuFwCfgLib/X64/IoLibExAsm.asm
47ac158f851bd37198680d21e40cc5ba86780d93
[mirror_edk2.git] / OvmfPkg / Library / QemuFwCfgLib / X64 / IoLibExAsm.asm
1 ;------------------------------------------------------------------------------
2 ;
3 ; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
4 ; This program and the accompanying materials
5 ; are licensed and made available under the terms and conditions of the BSD License
6 ; which accompanies this distribution. The full text of the license may be found at
7 ; http://opensource.org/licenses/bsd-license.php.
8 ;
9 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 ;
12 ;------------------------------------------------------------------------------
13
14 .code
15
16 ;------------------------------------------------------------------------------
17 ; VOID
18 ; EFIAPI
19 ; IoReadFifo8 (
20 ; IN UINTN Port, // rcx
21 ; IN UINTN Size, // rdx
22 ; IN VOID *Buffer // r8
23 ; );
24 ;------------------------------------------------------------------------------
25 IoReadFifo8 PROC
26
27 xchg rcx, rdx
28 xchg rdi, r8 ; rdi: buffer address; r8: save rdi
29 rep insb
30 mov rdi, r8 ; restore rdi
31 ret
32
33 IoReadFifo8 ENDP
34
35
36 ;------------------------------------------------------------------------------
37 ; VOID
38 ; EFIAPI
39 ; IoWriteFifo8 (
40 ; IN UINTN Port, // rcx
41 ; IN UINTN Size, // rdx
42 ; IN VOID *Buffer // r8
43 ; );
44 ;------------------------------------------------------------------------------
45 IoWriteFifo8 PROC
46
47 xchg rcx, rdx
48 xchg rsi, r8 ; rdi: buffer address; r8: save rdi
49 rep outsb
50 mov rsi, r8 ; restore rdi
51 ret
52
53 IoWriteFifo8 ENDP
54
55 END
56