diff --git a/MdePkg/Library/BaseLib/Ia32/Thunk16.nasm b/MdePkg/Library/BaseLib/Ia32/Thunk16.nasm index e8468a3fbf..e3d0d4e417 100644 --- a/MdePkg/Library/BaseLib/Ia32/Thunk16.nasm +++ b/MdePkg/Library/BaseLib/Ia32/Thunk16.nasm @@ -85,7 +85,11 @@ _BackFromUserCode: BITS 16 push ss push cs -o32 call dword .Base ; push eip + ; + ; Note: We can't use o32 on the next instruction because of a bug + ; in NASM 2.09.04 through 2.10rc1. + ; + call dword .Base ; push eip .Base: pushfd cli ; disable interrupts diff --git a/MdePkg/Library/BaseLib/X64/Thunk16.nasm b/MdePkg/Library/BaseLib/X64/Thunk16.nasm index 6084fac8c4..7c4a8d3e17 100644 --- a/MdePkg/Library/BaseLib/X64/Thunk16.nasm +++ b/MdePkg/Library/BaseLib/X64/Thunk16.nasm @@ -83,7 +83,11 @@ _BackFromUserCode: BITS 16 push ss push cs -o32 call dword .Base ; push eip + ; + ; Note: We can't use o32 on the next instruction because of a bug + ; in NASM 2.09.04 through 2.10rc1. + ; + call dword .Base ; push eip .Base: push dword 0 ; reserved high order 32 bits of EFlags pushfd