diff options
author | rsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-05-17 08:35:20 +0000 |
---|---|---|
committer | rsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-05-17 08:35:20 +0000 |
commit | 24f7e42cb79297347013093b1b9665e672ae29d7 (patch) | |
tree | 485dbab1be7fdc0c08995abf3b006d2a621b5181 /UefiCpuPkg/CpuDxe | |
parent | 8b6d0c057f8743aaf518c22e1fff9fabc6719d07 (diff) | |
download | edk2-platforms-24f7e42cb79297347013093b1b9665e672ae29d7.tar.xz |
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/CpuDxe')
-rw-r--r-- | UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S | 5 | ||||
-rw-r--r-- | UefiCpuPkg/CpuDxe/X64/CpuAsm.S | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S b/UefiCpuPkg/CpuDxe/Ia32/CpuAsm.S index d3e1dee624..38f46ab335 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 8f191320a8..f1481d85d6 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)
|