> > Mike: > Your issue is that X64 version doesn't work on machine with UG feature. You > find it can work when "call dword .Base" is used instead of "o32 call > dword .Base". So, your question is why o32 prefix used. Right? > Yes. But in case absent UG feature I got a warning also.
And I'm bit confused with a listing produced by objdump. Another place that confuses me: objdump -zD Build/PkgX64/DEBUG_GCC47/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/X64/Thunk16.obj 68: 2e 66 89 87 83 00 mov %eax,%cs:0x83(%bx) 6e: 66 b8 00 00 00 00 mov $0x0,%eax 74: 0f 22 e0 mov %eax,%cr4 0000000000000075 <_BackFromUserCode.SavedCr4End>: 75: 22 e0 and %al,%ah 77: 2e 66 0f 01 57 ed lgdtl %cs:-0x13(%bx) 7d: 66 b9 80 00 00 c0 mov $0xc0000080,%ecx mov eax, strict dword 0 .SavedCr4End: mov cr4, eax o32 lgdt [cs:bx + (SavedGdt - .Base)] mov ecx, 0c0000080h And it looks good in other mentioned cases. ------------------------------------------------------------------------------ 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