summaryrefslogtreecommitdiffstats
path: root/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s')
-rw-r--r--IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s19
1 files changed, 16 insertions, 3 deletions
diff --git a/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s b/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s
index 4773fe94c2..a21a5b6c61 100644
--- a/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s
+++ b/IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s
@@ -25,20 +25,33 @@
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(Pei2LoaderSwitchStack)
ASM_PFX(Pei2LoaderSwitchStack):
- jmp ASM_PFX(Loader2PeiSwitchStack)
+ xorl %eax, %eax
+ jmp ASM_PFX(FspSwitchStack)
#------------------------------------------------------------------------------
# UINT32
# EFIAPI
# Loader2PeiSwitchStack (
+# VOID
# )
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(Loader2PeiSwitchStack)
ASM_PFX(Loader2PeiSwitchStack):
+ jmp ASM_PFX(FspSwitchStack)
+
+#------------------------------------------------------------------------------
+# UINT32
+# EFIAPI
+# FspSwitchStack (
+# VOID
+# )
+#------------------------------------------------------------------------------
+ASM_GLOBAL ASM_PFX(FspSwitchStack)
+ASM_PFX(FspSwitchStack):
#
#Save current contexts
#
- push $exit
+ push %eax
pushf
cli
pusha
@@ -59,7 +72,7 @@ ASM_PFX(Loader2PeiSwitchStack):
add $0x08,%esp
popa
popf
-exit:
+ add $0x04,%esp
ret