Fix various typos in comments and documentation. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Ray Ni <ray.ni@intel.com> Signed-off-by: Antoine Coeur <coeur@gmx.fr> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Acked-by: Liming Gao <liming.gao@intel.com> Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> Message-Id: <20200207010831.9046-5-philmd@redhat.com>
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| #------------------------------------------------------------------------------
 | |
| #
 | |
| # Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
 | |
| # Portions copyright (c) 2011, Apple Inc. All rights reserved.
 | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| #
 | |
| #------------------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| 
 | |
| //  EFI_STATUS
 | |
| //  EFIAPI
 | |
| //  SecTemporaryRamSupport (
 | |
| //    IN CONST EFI_PEI_SERVICES   **PeiServices,         // %rcx
 | |
| //    IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,   // %rdx
 | |
| //    IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,   // %r8
 | |
| //    IN UINTN                    CopySize               // %r9
 | |
| //    )
 | |
| //
 | |
| ASM_GLOBAL ASM_PFX(SecTemporaryRamSupport)
 | |
| ASM_PFX(SecTemporaryRamSupport):
 | |
|   // Adjust callers %rbp to account for stack move
 | |
|   subq    %rdx, %rbp     // Calc offset of %rbp in Temp Memory
 | |
|   addq    %r8,  %rbp     // add in permanent base to offset
 | |
| 
 | |
|   pushq   %rbp           // stack frame is for the debugger
 | |
|   movq    %rsp, %rbp
 | |
| 
 | |
|   pushq   %rdx          // Save TemporaryMemoryBase
 | |
|   pushq   %r8           // Save PermanentMemoryBase
 | |
|   pushq   %r9           // Save CopySize
 | |
| 
 | |
|   //
 | |
|   // Copy all of temp RAM to permanent memory, including stack
 | |
|   //
 | |
|   // CopyMem (PermanentMemoryBase, TemporaryMemoryBase, CopySize);
 | |
|   //          %rcx,                %rdx,                %r8
 | |
|   movq    %r8,  %rcx    // Shift arguments
 | |
|   movq    %r9,  %r8
 | |
|   subq    $0x28, %rsp   // Allocate register spill area & 16-byte align stack
 | |
|   call    ASM_PFX(CopyMem)
 | |
|   // Temp mem stack now copied to permanent location. %esp still in temp memory
 | |
|   addq    $0x28, %rsp
 | |
| 
 | |
|   popq    %r9           // CopySize (old stack)
 | |
|   popq    %r8           // PermanentMemoryBase (old stack)
 | |
|   popq    %rdx          // TemporaryMemoryBase (old stack)
 | |
| 
 | |
|   movq    %rsp, %rcx    // Move to new stack
 | |
|   subq    %rdx, %rcx    // Calc offset of stack in Temp Memory
 | |
|   addq    %r8,  %rcx    // Calc PermanentMemoryBase address
 | |
|   movq    %rcx, %rsp    // Update stack
 | |
|   // Stack now points to permanent memory
 | |
| 
 | |
|   // ZeroMem (TemporaryMemoryBase /* rcx */, CopySize /* rdx */);
 | |
|   movq    %rdx, %rcx
 | |
|   movq    %r9,  %rdx
 | |
|   subq    $0x28, %rsp   // Allocate register spill area & 16-byte align stack
 | |
|   call    ASM_PFX(ZeroMem)
 | |
|   addq    $0x28, %rsp
 | |
| 
 | |
|   // This data comes off the NEW stack
 | |
|   popq    %rbp
 | |
|   ret
 | |
| 
 | |
| 
 |