diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.asm b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.asm index 6741405cbc..2f968cac2f 100644 --- a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.asm +++ b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.asm @@ -92,6 +92,7 @@ EbcLLCALLEXNative ENDP ; The contents of the register in which the entry point is passed. ; EbcLLGetEbcEntryPoint PROC PUBLIC + mov rax, r10 ret EbcLLGetEbcEntryPoint ENDP diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c b/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c index 3f84bcc496..6c0428d9cc 100644 --- a/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c +++ b/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c @@ -412,14 +412,14 @@ EbcCreateThunks ( // // Add code bytes to load up a processor register with the EBC entry point. - // mov rax, 123456789abcdef0h => 48 B8 F0 DE BC 9A 78 56 34 12 + // mov r10, 123456789abcdef0h => 48 B8 F0 DE BC 9A 78 56 34 12 // The first 8 bytes of the thunk entry is the address of the EBC // entry point. // - *Ptr = 0x48; + *Ptr = 0x49; Ptr++; Size--; - *Ptr = 0xB8; + *Ptr = 0xBA; Ptr++; Size--; Addr = (UINT64) EbcEntryPoint;