MdePkg BaseLib: Convert Ia32/SetJump.asm to NASM

The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
Ia32/SetJump.asm to Ia32/SetJump.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
Jordan Justen 2016-05-30 18:51:55 -07:00 committed by Liming Gao
parent 1d3324f9bc
commit 72ed2edeff
2 changed files with 50 additions and 0 deletions

View File

@ -217,6 +217,7 @@
Ia32/WriteMsr64.asm | INTEL
Ia32/SwapBytes64.nasm| INTEL
Ia32/SwapBytes64.asm | INTEL
Ia32/SetJump.nasm| INTEL
Ia32/SetJump.asm | INTEL
Ia32/RRotU64.asm | INTEL
Ia32/RShiftU64.asm | INTEL
@ -302,6 +303,7 @@
Ia32/CpuIdEx.S | GCC
Ia32/CpuId.S | GCC
Ia32/LongJump.S | GCC
Ia32/SetJump.nasm| GCC
Ia32/SetJump.S | GCC
Ia32/SwapBytes64.nasm| GCC
Ia32/SwapBytes64.S | GCC

View File

@ -0,0 +1,48 @@
;------------------------------------------------------------------------------
;
; 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:
;
; SetJump.Asm
;
; Abstract:
;
; Implementation of SetJump() on IA-32.
;
;------------------------------------------------------------------------------
SECTION .text
extern ASM_PFX(InternalAssertJumpBuffer)
;------------------------------------------------------------------------------
; UINTN
; EFIAPI
; SetJump (
; OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
; );
;------------------------------------------------------------------------------
global ASM_PFX(SetJump)
ASM_PFX(SetJump):
push DWORD [esp + 4]
call ASM_PFX(InternalAssertJumpBuffer) ; To validate JumpBuffer
pop ecx
pop ecx ; ecx <- return address
mov edx, [esp]
mov [edx], ebx
mov [edx + 4], esi
mov [edx + 8], edi
mov [edx + 12], ebp
mov [edx + 16], esp
mov [edx + 20], ecx ; eip value to restore in LongJump
xor eax, eax
jmp ecx