summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2009-07-18 16:00:10 +0000
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2009-07-18 16:00:10 +0000
commitebceb28e2641f5dad81e1c3e70c9b6cb49547aab (patch)
treed55f8365c5eb1c74c3b17bee9eb9ec516d9a2ccc
parent2703f9e23009ad3feefda72b031f3ba3f63eb41d (diff)
downloadedk2-ebceb28e2641f5dad81e1c3e70c9b6cb49547aab.zip
edk2-ebceb28e2641f5dad81e1c3e70c9b6cb49547aab.tar.gz
edk2-ebceb28e2641f5dad81e1c3e70c9b6cb49547aab.tar.bz2
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
-rw-r--r--MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S1
-rw-r--r--MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S
index acebb63..e7bda2f 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 6c0428d..ef4b4c4 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.
//