Jordan: Another question. Why you put some nop opcode in Thunk16.nasm code? 32bit Thunk16.nasm has one nop. 64bit Thunk16.nasm have two nop.
Thanks Liming -----Original Message----- From: Jordan Justen [mailto:jljus...@gmail.com] Sent: Thursday, August 21, 2014 9:13 AM To: edk2-devel@lists.sourceforge.net Subject: Re: [edk2] [PATCH 5/8] MdePkg/BaseLib Thunk16: Replace X64 GAS Thunk16 with NASM version On Wed, Aug 20, 2014 at 2:40 PM, Mike Maslenkin <miha...@parallels.com> wrote: > Hello Jordan ! > build -p build -p IntelFrameworkModulePkg/IntelFrameworkModulePkg.dsc > -a X64 > told me about next errors: > > Building ... > /home/mg/sources/jljusten/edk2/MdePkg/Library/BaseReportStatusCodeLibN > ull/BaseReportStatusCodeLibNull.inf [X64] > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:193: > error: segment alignment `0x8' is not power of two > make: *** > [/home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GC > C47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.obj] Error 1 > > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:240: > error: invalid combination of opcode and operands > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:242: > error: invalid combination of opcode and operands > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:244: > error: invalid combination of opcode and operands > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:310: > error: invalid combination of opcode and operands > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:312: > error: invalid combination of opcode and operands > /home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GCC > 47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.iii:314: > error: invalid combination of opcode and operands > make: *** > [/home/mg/sources/jljusten/edk2/Build/IntelFrameworkModuleAll/DEBUG_GC > C47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.obj] Error 1 > > The last errors come from this > +global ASM_PFX(InternalAsmThunk16) > +ASM_PFX(InternalAsmThunk16): > <skip> > > > ^^^^^^^^^^^^^^^^^^^^^^^ >> + push rbx ; Save ds segment register on the stack >> + mov rbx, es >> ^^^^^^^^^^^^^^^^^^^^^^^ >> + push rbx ; Save es segment register on the stack >> + mov rbx, ss > ^^^^^^^^^^^^^^^^^^^^^^^ >> + push rbx ; Save ss segment register on the stack > <skip> > >> + mov ss, rbx >> ^^^^^^^^^^^^^^^^^^^^^^^ >> + pop rbx >> + mov es, rbx > ^^^^^^^^^^^^^^^^^^^^^^^ >> + pop rbx >> + mov ds, rbx > ^^^^^^^^^^^^^^^^^^^^^^^ > > > Initially I used a NASM version used in our build system. Do not know > for where we got it but it reported itself as NASM version 2.09.04 > > After that I installed a default NASM that comes with openSuSE 12.2: > NASM version 2.09.08 compiled on Jun 16 2011 > > I got same errors. > So, please clarify which minimal version of NASM is required. I did put NASM 2.03 in the tools_def (which was taken from VTF0), but I was testing with 2.11. I'll try with 2.03 to make sure we can actually support that version. -Jordan ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel