1) Fix GCC version EBC interpreter bug.
Add missing EFIPAI for EbcInterpret and ExecuteEbcImageEntryPoint(). Get return value in EbcLLCALLEXNative(), remove EbcLLGetReturnValue(). 2) Fix IA32 EBC interpreter bug on MOVsnw and MOVsnd. 3) Some cleanup Add missing ReturnEBCStack() for IA32 build. Remove unnecessary EbcLLGetStackPointer() for X64 and IPF build. Remove deadcode EbcLLGetStackPointer() and EbcLLGetReturnValue() in IA32/X64/IPF ASM code. Dump more info in CommonEbcExceptionHandler(). Signed-off-by: jyao1 Reviewed-by: Elvinli git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12745 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -145,21 +145,6 @@ EbcLLGetEbcEntryPoint (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Returns the caller's value of the stack pointer.
|
||||
|
||||
We adjust it by 4 here because when they called us, the return address
|
||||
is put on the stack, thereby lowering it by 4 bytes.
|
||||
|
||||
@return The current value of the stack pointer for the caller.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EbcLLGetStackPointer (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
This function is called to execute an EBC CALLEX instruction.
|
||||
This instruction requires that we thunk out to external native
|
||||
@@ -172,8 +157,10 @@ EbcLLGetStackPointer (
|
||||
@param EbcSp The new EBC stack pointer.
|
||||
@param FramePtr The frame pointer.
|
||||
|
||||
@return The unmodified value returned by the native code.
|
||||
|
||||
**/
|
||||
VOID
|
||||
INT64
|
||||
EFIAPI
|
||||
EbcLLCALLEXNative (
|
||||
IN UINTN CallAddr,
|
||||
@@ -205,21 +192,6 @@ EbcLLCALLEX (
|
||||
IN UINT8 Size
|
||||
);
|
||||
|
||||
/**
|
||||
When EBC calls native, on return the VM has to stuff the return
|
||||
value into a VM register. It's assumed here that the value is still
|
||||
in the register, so simply return and the caller should get the
|
||||
return result properly.
|
||||
|
||||
@return The unmodified value returned by the native code.
|
||||
|
||||
**/
|
||||
INT64
|
||||
EFIAPI
|
||||
EbcLLGetReturnValue (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Returns the stack index and buffer assosicated with the Handle parameter.
|
||||
|
||||
|
Reference in New Issue
Block a user