From 61ece967cb59509608aa747fc9424c619646fc9d Mon Sep 17 00:00:00 2001 From: rsun3 Date: Fri, 11 Jun 2010 03:22:15 +0000 Subject: Skip restoration of DRx registers to support in-circuit emualators or debuggers set breakpoint in interrupt/exception context. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10573 6f19259b-4bc3-4df7-8a09-765794883524 --- UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) (limited to 'UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S') diff --git a/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S b/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S index 04896578f7..d3e1dee624 100644 --- a/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S +++ b/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ #* -#* Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.
+#* Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
#* This program and the accompanying materials #* are licensed and made available under the terms and conditions of the BSD License #* which accompanies this distribution. The full text of the license may be found at @@ -258,16 +258,8 @@ ErrorCodeAndVectorOnStack: #; UINT32 Dr0, Dr1, Dr2, Dr3, Dr6, Dr7; movl %dr7, %eax pushl %eax -#; clear Dr7 while executing debugger itself - xorl %eax, %eax - movl %eax, %dr7 - movl %dr6, %eax pushl %eax -#; insure all status bits in dr6 are clear... - xorl %eax, %eax - movl %eax, %dr6 - movl %dr3, %eax pushl %eax movl %dr2, %eax @@ -319,18 +311,9 @@ nullExternalExceptionHandler: addl $512, %esp #; UINT32 Dr0, Dr1, Dr2, Dr3, Dr6, Dr7; - popl %eax - movl %eax, %dr0 - popl %eax - movl %eax, %dr1 - popl %eax - movl %eax, %dr2 - popl %eax - movl %eax, %dr3 -#; skip restore of dr6. We cleared dr6 during the context save. - addl $4, %esp - popl %eax - movl %eax, %dr7 +#; Skip restoration of DRx registers to support in-circuit emualators +#; or debuggers set breakpoint in interrupt/exception context + addl $24, %esp #; UINT32 Cr0, Cr1, Cr2, Cr3, Cr4; popl %eax -- cgit v1.2.3