From ebceb28e2641f5dad81e1c3e70c9b6cb49547aab Mon Sep 17 00:00:00 2001 From: mdkinney Date: Sat, 18 Jul 2009 16:00:10 +0000 Subject: [PATCH] Fix bug in EBC thunk for X64 that appears when higher levels of compiler optimization is used. This is a temporary fix that should for for most tool chains. A more complete fix will be required to guarantee compatibility with all tool chains. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8973 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S | 1 + MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S index acebb63a77..e7bda2f5e3 100644 --- a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S +++ b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S @@ -86,6 +86,7 @@ ASM_PFX(EbcLLCALLEXNative): # ASM_GLOBAL ASM_PFX(EbcLLGetEbcEntryPoint); ASM_PFX(EbcLLGetEbcEntryPoint): + mov %r10, %rax ret #/*++ diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c b/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c index 6c0428d9cc..ef4b4c4c0d 100644 --- a/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c +++ b/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c @@ -412,7 +412,7 @@ EbcCreateThunks ( // // Add code bytes to load up a processor register with the EBC entry point. - // mov r10, 123456789abcdef0h => 48 B8 F0 DE BC 9A 78 56 34 12 + // mov r10, 123456789abcdef0h => 49 BA F0 DE BC 9A 78 56 34 12 // The first 8 bytes of the thunk entry is the address of the EBC // entry point. //