summaryrefslogtreecommitdiff
path: root/MdePkg
diff options
context:
space:
mode:
authorbbahnsen <bbahnsen@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-12 17:11:17 +0000
committerbbahnsen <bbahnsen@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-12 17:11:17 +0000
commitec8547f6ef8d2e6654b89ad6ccb4aadbb0da5041 (patch)
tree4fa6073e13f7221eef1339c2bff5f63a9b04f3dc /MdePkg
parent95945c7635df90c9d95ac93aa1f9bf725fd24ab6 (diff)
downloadedk2-ec8547f6ef8d2e6654b89ad6ccb4aadbb0da5041.zip
edk2-ec8547f6ef8d2e6654b89ad6ccb4aadbb0da5041.tar.gz
edk2-ec8547f6ef8d2e6654b89ad6ccb4aadbb0da5041.tar.bz2
Fixes for gcc assembly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@485 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Library/BaseLib/Ia32/CpuIdEx.s67
-rw-r--r--MdePkg/Library/BaseLib/Ia32/LongJump.s77
2 files changed, 105 insertions, 39 deletions
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuIdEx.s b/MdePkg/Library/BaseLib/Ia32/CpuIdEx.s
new file mode 100644
index 0000000..43c23b6
--- /dev/null
+++ b/MdePkg/Library/BaseLib/Ia32/CpuIdEx.s
@@ -0,0 +1,67 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (c) 2006, 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
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+# Module Name:
+#
+# CpuIdEx.Asm
+#
+# Abstract:
+#
+# AsmCpuidEx function
+#
+# Notes:
+#
+#------------------------------------------------------------------------------
+
+ .686:
+ .code:
+
+#------------------------------------------------------------------------------
+# UINT32
+# EFIAPI
+# AsmCpuidEx (
+# IN UINT32 RegisterInEax,
+# IN UINT32 RegisterInEcx,
+# OUT UINT32 *RegisterOutEax OPTIONAL,
+# OUT UINT32 *RegisterOutEbx OPTIONAL,
+# OUT UINT32 *RegisterOutEcx OPTIONAL,
+# OUT UINT32 *RegisterOutEdx OPTIONAL
+# )
+#------------------------------------------------------------------------------
+.globl _AsmCpuidEx
+_AsmCpuidEx:
+ push %ebx
+ pushl %ebp
+ movl %esp, %ebp
+ movl 12(%ebp), %eax
+ movl 16(%ebp), %ecx
+ cpuid
+ pushl %ecx
+ movl 20(%ebp), %ecx
+ jecxz L1
+ movl %eax, (%ecx)
+L1:
+ movl 24(%ebp), %ecx
+ jecxz L2
+ movl %ebx, (%ecx)
+L2:
+ movl 28(%ebp), %ecx
+ jecxz L3
+ popl %ecx
+L3:
+ movl 32(%ebp), %edx
+ jecxz L4
+ movl %edx, (%ecx)
+L4:
+ movl 12(%ebp), %eax
+ pop %ebx
+ leave
+ ret
diff --git a/MdePkg/Library/BaseLib/Ia32/LongJump.s b/MdePkg/Library/BaseLib/Ia32/LongJump.s
index 4a36afc..8ccffe4 100644
--- a/MdePkg/Library/BaseLib/Ia32/LongJump.s
+++ b/MdePkg/Library/BaseLib/Ia32/LongJump.s
@@ -1,39 +1,38 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006, 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
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-# LongJump.Asm
-#
-# Abstract:
-#
-# Implementation of _LongJump() on IA-32.
-#
-#------------------------------------------------------------------------------
-
-
-
-
-
-.global __LongJump
-__LongJump:
- popl %eax
- popl %edx
- popl %eax
- movl (%edx),%ebx
- movl 4(%edx),%esi
- movl 8(%edx),%edi
- movl 12(%edx),%ebp
- movl 16(%edx),%esp
- jmpl *20(%edx)
-
-
-
+#------------------------------------------------------------------------------
+#
+# Copyright (c) 2006, 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
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+# Module Name:
+#
+# LongJump.Asm
+#
+# Abstract:
+#
+# Implementation of _LongJump() on IA-32.
+#
+#------------------------------------------------------------------------------
+
+ .386:
+ .code:
+
+.globl _InternalLongJump
+_InternalLongJump:
+ popl %eax
+ popl %edx
+ popl %eax
+ movl (%edx), %ebx
+ movl 4(%edx), %esi
+ movl 8(%edx), %edi
+ movl 12(%edx), %ebp
+ movl 16(%edx), %esp
+ jmp 20(%edx)
+#InternalLongJump ENDP
+
+