summaryrefslogtreecommitdiff
path: root/UefiCpuPkg
diff options
context:
space:
mode:
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>2011-05-17 08:35:20 +0000
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>2011-05-17 08:35:20 +0000
commit24f7e42cb79297347013093b1b9665e672ae29d7 (patch)
tree485dbab1be7fdc0c08995abf3b006d2a621b5181 /UefiCpuPkg
parent8b6d0c057f8743aaf518c22e1fff9fabc6719d07 (diff)
downloadedk2-24f7e42cb79297347013093b1b9665e672ae29d7.tar.gz
A complement fix for revision 11664 to update GCC assembly files : clear the direction flag in interrupt/exception handlers' assembly entry code before calling C functions to follow the UEFI calling convention.
Signed-off-by: rsun3 Reviewed-by: jyao1 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11670 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg')
-rw-r--r--UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S5
-rw-r--r--UefiCpuPkg/CpuDxe/X64/CpuAsm.S5
2 files changed, 8 insertions, 2 deletions
diff --git a/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S b/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S
index d3e1dee62..38f46ab33 100644
--- a/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S
+++ b/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#*
-#* Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+#* Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
#* 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
@@ -274,6 +274,9 @@ ErrorCodeAndVectorOnStack:
movl %esp, %edi
.byte 0x0f, 0x0ae, 0x07 #fxsave [edi]
+#; UEFI calling convention for IA32 requires that Direction flag in EFLAGs is clear
+ cld
+
#; UINT32 ExceptionData;
pushl 8(%ebp)
diff --git a/UefiCpuPkg/CpuDxe/X64/CpuAsm.S b/UefiCpuPkg/CpuDxe/X64/CpuAsm.S
index 8f191320a..f1481d85d 100644
--- a/UefiCpuPkg/CpuDxe/X64/CpuAsm.S
+++ b/UefiCpuPkg/CpuDxe/X64/CpuAsm.S
@@ -2,7 +2,7 @@
#------------------------------------------------------------------------------
#*
-#* Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+#* Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
#* 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
@@ -234,6 +234,9 @@ CommonInterruptEntry_al_0000:
movq %rsp, %rdi
.byte 0x0f, 0x0ae, 0x07 #fxsave [rdi]
+#; UEFI calling convention for x64 requires that Direction flag in EFLAGs is clear
+ cld
+
#; UINT32 ExceptionData;
pushq 16(%rbp)