mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 19:23:54 +01:00 
			
		
		
		
	MdePkg BaseMemoryLibMmx: Convert Ia32/SetMem32.asm to NASM
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert Ia32/SetMem32.asm to Ia32/SetMem32.nasm Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
		
							parent
							
								
									9e3a12a162
								
							
						
					
					
						commit
						b8f62ba2d3
					
				| @ -62,6 +62,7 @@ | ||||
|   Ia32/CompareMem.S | ||||
|   Ia32/SetMem64.nasm | ||||
|   Ia32/SetMem64.S | ||||
|   Ia32/SetMem32.nasm | ||||
|   Ia32/SetMem32.S | ||||
|   Ia32/SetMem16.S | ||||
|   Ia32/ZeroMem.S | ||||
| @ -79,6 +80,7 @@ | ||||
|   Ia32/CompareMem.asm | ||||
|   Ia32/SetMem64.nasm | ||||
|   Ia32/SetMem64.asm | ||||
|   Ia32/SetMem32.nasm | ||||
|   Ia32/SetMem32.asm | ||||
|   Ia32/SetMem16.asm | ||||
|   Ia32/ZeroMem.asm | ||||
|  | ||||
							
								
								
									
										55
									
								
								MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem32.nasm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem32.nasm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | ||||
| ;------------------------------------------------------------------------------ | ||||
| ; | ||||
| ; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR> | ||||
| ; This program and the accompanying materials | ||||
| ; are licensed and made available under the terms and conditions of the BSD License | ||||
| ; which accompanies this distribution.  The full text of the license may be found at | ||||
| ; http://opensource.org/licenses/bsd-license.php. | ||||
| ; | ||||
| ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | ||||
| ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | ||||
| ; | ||||
| ; Module Name: | ||||
| ; | ||||
| ;   SetMem32.nasm | ||||
| ; | ||||
| ; Abstract: | ||||
| ; | ||||
| ;   SetMem32 function | ||||
| ; | ||||
| ; Notes: | ||||
| ; | ||||
| ;------------------------------------------------------------------------------ | ||||
| 
 | ||||
|     SECTION .text | ||||
| 
 | ||||
| ;------------------------------------------------------------------------------ | ||||
| ;  VOID * | ||||
| ;  EFIAPI | ||||
| ;  InternalMemSetMem32 ( | ||||
| ;    IN VOID   *Buffer, | ||||
| ;    IN UINTN  Count, | ||||
| ;    IN UINT32 Value | ||||
| ;    ); | ||||
| ;------------------------------------------------------------------------------ | ||||
| global ASM_PFX(InternalMemSetMem32) | ||||
| ASM_PFX(InternalMemSetMem32): | ||||
|     mov     eax, [esp + 4]              ; eax <- Buffer as return value | ||||
|     mov     ecx, [esp + 8]              ; ecx <- Count | ||||
|     movd    mm0, dword [esp + 12]             ; mm0 <- Value | ||||
|     shr     ecx, 1                      ; ecx <- number of qwords to set | ||||
|     mov     edx, eax                    ; edx <- Buffer | ||||
|     jz      @SetDwords | ||||
|     movq    mm1, mm0 | ||||
|     psllq   mm1, 32 | ||||
|     por     mm0, mm1 | ||||
| .0: | ||||
|     movq    qword [edx], mm0 | ||||
|     lea     edx, [edx + 8]              ; use "lea" to avoid change in flags | ||||
|     loop    .0 | ||||
| @SetDwords: | ||||
|     jnc     .1 | ||||
|     movd    dword [edx], mm0 | ||||
| .1: | ||||
|     ret | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user