summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/EbcDxe/EbcInt.c
diff options
context:
space:
mode:
authorjyao1 <jyao1@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-21 08:35:14 +0000
committerjyao1 <jyao1@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-21 08:35:14 +0000
commitfa97cbf4ef6f4fd2dc0312c09b6b5003780facb8 (patch)
treeef755da1081954d431c37d23934cd67d481fe067 /MdeModulePkg/Universal/EbcDxe/EbcInt.c
parentea71453f72e9a1990aaf7af76689a3f69c7b603f (diff)
downloadedk2-platforms-fa97cbf4ef6f4fd2dc0312c09b6b5003780facb8.tar.xz
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
Diffstat (limited to 'MdeModulePkg/Universal/EbcDxe/EbcInt.c')
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcInt.c55
1 files changed, 54 insertions, 1 deletions
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcInt.c b/MdeModulePkg/Universal/EbcDxe/EbcInt.c
index 609f103995..549e0dd8dc 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcInt.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcInt.c
@@ -875,9 +875,62 @@ CommonEbcExceptionHandler (
)
{
//
+ // We print debug information to let user know what happen.
+ //
+ DEBUG ((
+ EFI_D_ERROR,
+ "EBC Interrupter Version - 0x%016lx\n",
+ (UINT64) (((VM_MAJOR_VERSION & 0xFFFF) << 16) | ((VM_MINOR_VERSION & 0xFFFF)))
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ "Exception Type - 0x%016lx\n",
+ (UINT64)(UINTN)InterruptType
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " R0 - 0x%016lx, R1 - 0x%016lx\n",
+ SystemContext.SystemContextEbc->R0,
+ SystemContext.SystemContextEbc->R1
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " R2 - 0x%016lx, R3 - 0x%016lx\n",
+ SystemContext.SystemContextEbc->R2,
+ SystemContext.SystemContextEbc->R3
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " R4 - 0x%016lx, R5 - 0x%016lx\n",
+ SystemContext.SystemContextEbc->R4,
+ SystemContext.SystemContextEbc->R5
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " R6 - 0x%016lx, R7 - 0x%016lx\n",
+ SystemContext.SystemContextEbc->R6,
+ SystemContext.SystemContextEbc->R7
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " Flags - 0x%016lx\n",
+ SystemContext.SystemContextEbc->Flags
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " ControlFlags - 0x%016lx\n",
+ SystemContext.SystemContextEbc->ControlFlags
+ ));
+ DEBUG ((
+ EFI_D_ERROR,
+ " Ip - 0x%016lx\n\n",
+ SystemContext.SystemContextEbc->Ip
+ ));
+
+ //
// We deadloop here to make it easy to debug this issue.
//
- ASSERT (FALSE);
+ CpuDeadLoop ();
return ;
}