Home | History | Annotate | Download | only in X64
      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     DEFAULT REL
     15     SECTION .text
     16 
     17 ;------------------------------------------------------------------------------
     18 ;  VOID
     19 ;  EFIAPI
     20 ;  IoReadFifo8 (
     21 ;    IN UINTN                  Port,              // rcx
     22 ;    IN UINTN                  Size,              // rdx
     23 ;    IN VOID                   *Buffer            // r8
     24 ;    );
     25 ;------------------------------------------------------------------------------
     26 global ASM_PFX(IoReadFifo8)
     27 ASM_PFX(IoReadFifo8):
     28 
     29     xchg    rcx, rdx
     30     xchg    rdi, r8             ; rdi: buffer address; r8: save rdi
     31 rep insb
     32     mov     rdi, r8             ; restore rdi
     33     ret
     34 
     35 ;------------------------------------------------------------------------------
     36 ;  VOID
     37 ;  EFIAPI
     38 ;  IoWriteFifo8 (
     39 ;    IN UINTN                  Port,              // rcx
     40 ;    IN UINTN                  Size,              // rdx
     41 ;    IN VOID                   *Buffer            // r8
     42 ;    );
     43 ;------------------------------------------------------------------------------
     44 global ASM_PFX(IoWriteFifo8)
     45 ASM_PFX(IoWriteFifo8):
     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