Oops, and I meant Feng, not Jiang. Was reading some other email from a
Jiang...
V/R
JRS
On Sat, Dec 13, 2014 at 7:25 PM, John Smith <[email protected]>
wrote:
>
> I don't know a way to reply to a thread that predates my being on the list
> but for this thread (which I've copied the last message, circa Oct 22
> below) it's still relevant. Because I just got this error in an Ubuntu
> 14.10 VM, and the easy fix was just to change the asm. I don't know why
> Jiang thinks the patch could change the upper 48 bits. He's probably so
> used to looking at instructions in Intel syntax that he got confused over
> which direction the move was happening. Anyway, point is, you can't build
> UDK2014 SP1 on Ubuntu 14.10 (with gcc 4.9.1) without changing this single
> instruction. I chose to make it an ax instead of rax. 6 of one, half dozen
> of the other.
>
>
> V/R
>
>
> JRS
>
>
> From: Tian, Feng <feng.tian@in...> - 2014-10-22 08:55:08
>
> Jordan,
>
> Your patch is:
>
> - movw %es, %rax
>
> + mov %es, %rax
>
> The disassemble code through https://defuse.ca/online-x86-assembler.htm is
> (I change it from AT&T syntax to Masm):
> 66 8c c0 movw rax, es
> 48 8c c0 mov rax, es
>
> I am not sure if it will cause behavior change, such as RAX's high 48 bit is
> cleaned to 0? At least the binary of instruction is changed. Could you help
> confirm this?
>
> Thanks
> Feng
>
> From: Fan, Jeff
> Sent: Wednesday, October 22, 2014 3:54 PM
> To: Andrew Fish; edk2-devel@...
> Cc: Tian, Feng
> Subject: RE: [edk2] [PATCH] MdeModulePkg DebugSupportDxe: Fix build error
> with GNU assembler
>
> I agree eax is better (0 extended and small size)
>
> Jordan, I could clean up the incorrect usage in other packages.:-)
>
> Jeff
> From: Andrew Fish [mailto:afish@...]
> Sent: Wednesday, October 22, 2014 2:55 PM
> To: edk2-devel@...<mailto:edk2-devel@...>
> Cc: Fan, Jeff; Tian, Feng
> Subject: Re: [edk2] [PATCH] MdeModulePkg DebugSupportDxe: Fix build error
> with GNU assembler
>
>
> On Oct 21, 2014, at 11:27 PM, Jordan Justen
> <jljusten@...<mailto:jljusten@...>> wrote:
>
> On Sun, Oct 19, 2014 at 7:09 PM, Fan, Jeff
> <jeff.fan@...<mailto:jeff.fan@...>> wrote:
> SourceLevelDebugPkg/DebugAgentLib x64 also used movw %es, %rax.
> We need to fix it also.
>
> And UefiCpuPkg/Library/CpuExceptionLib x64 used movl %es, %eax.
> We could clean it to make a consistence in code base.
>
> More than that, it appears that the MASM code does a mov rax, es too.
>
> I'm not sure that mov ax, es is really much of an improvement, and I'm
> not interested in cleaning all that code up. I'd just like
> MdeModulePkg to build. :) Would one of you be interested in pursuing
> this cleanup?
>
> I'm also not sure, but it could be that the mov rax, es actually does
> a zero extended move, so maybe the mov ax, es would be different.
> Would that impact the code that looks at this value later?
>
> Actually it looks like eax is the correct form for X64 code ...
>
> On the MASM side for X64 https://defuse.ca/online-x86-assembler.htm
> mov rax, es
> mov eax ,es
> mov ax, es
> mov es, rax
> mov es, eax
> mov es, ax
> 0: 48 8c c0 mov rax,es
> 3: 8c c0 mov eax,es
> 5: 66 8c c0 mov ax,es
> 8: 48 8e c0 mov es,rax
> b: 8e c0 mov es,eax
> d: 8e c0 mov es,eax
> ax generates 0x66 - operand-size override prefix
> rax generates 0x48 - REX use 64-bit operand size.
>
> Anyway, I think that my original patch makes the code more consistent
> with the current other GNU asm and MASM code. So, maybe it is okay as
> a small next step?
>
>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel