> 
> 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

Reply via email to