]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/X64/SwitchStack.S
add some comments.
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / SwitchStack.S
index 85cdb4306dd5c2f1fbd854f1a0d1fe5c090b8a65..20c02d5b43b772062efc0b633506183c66836ff5 100644 (file)
@@ -1,6 +1,6 @@
 #------------------------------------------------------------------------------
 #
-# Copyright (c) 2006, Intel Corporation
+# Copyright (c) 2006 - 2008, 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
 #------------------------------------------------------------------------------
 # Routine Description:
 #
-#   Routine for switching stacks with 1 parameter
+#   Routine for switching stacks with 2 parameters
 #
 # Arguments:
 #
-#   (rdi) EntryPoint    - Entry point with new stack.
-#   (rsi) Context1      - Parameter1 for entry point.
-#   (rdx)  Context2     - Parameter2 for entry point.
-#   (rcx)  NewStack     - Pointer to new stack.
+#   (rcx) EntryPoint    - Entry point with new stack.
+#   (rdx) Context1      - Parameter1 for entry point.
+#   (r8)  Context2      - Parameter2 for entry point.
+#   (r9)  NewStack      - Pointer to new stack.
 #
 # Returns:
 #
 #   None
 #
 #------------------------------------------------------------------------------
-.global _InternalSwitchStack;
-_InternalSwitchStack:
+.global ASM_PFX(InternalSwitchStack)
+ASM_PFX(InternalSwitchStack):
     mov     %rcx, %rax
     mov     %rdx, %rcx
     mov     %r8, %rdx
+    #
+    # Reserve space for register parameters (rcx, rdx, r8 & r9) on the stack,
+    # in case the callee wishes to spill them.
+    #
     lea     -0x20(%r9), %rsp
     call    *%rax