diff options
author | andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-11-30 23:38:40 +0000 |
---|---|---|
committer | andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-11-30 23:38:40 +0000 |
commit | 2ff79f2eda16f8219140d3dae188d2b341f610e1 (patch) | |
tree | 693b0c0223c7f3a312f292a3a5ba9eff0def4dbe /UnixPkg/Sec/X64/SwitchStack.S | |
parent | e23a349aaec2ba7fd4218c6dabaf42da0aa9aa8e (diff) | |
download | edk2-platforms-2ff79f2eda16f8219140d3dae188d2b341f610e1.tar.xz |
Adding Simple Pointer, GOP, SimpleTextInEx, and Networking protocols to the emulator. Cleaned up POSIX include situation by centralizing it in a single file, like NT32. Fixed TPL issue with TPL High not being emulated correctly, it was possible to take a timer tick when the locks in the DXE core should have prevented this. Remove some unused files to make things easier to maintain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11105 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UnixPkg/Sec/X64/SwitchStack.S')
-rw-r--r-- | UnixPkg/Sec/X64/SwitchStack.S | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/UnixPkg/Sec/X64/SwitchStack.S b/UnixPkg/Sec/X64/SwitchStack.S index dfb618b395..e964e4d178 100644 --- a/UnixPkg/Sec/X64/SwitchStack.S +++ b/UnixPkg/Sec/X64/SwitchStack.S @@ -39,7 +39,9 @@ #------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(PeiSwitchStacks)
ASM_PFX(PeiSwitchStacks):
-// movq %rdx, %rdx
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
movq %r8, %rsp
movq %rdi, %rax
@@ -50,7 +52,7 @@ ASM_PFX(PeiSwitchStacks): # Reserve space for register parameters (rcx, rdx, r8 & r9) on the stack,
# in case the callee wishes to spill them.
#
- subq $40, %rsp // 32-byte shadow space plus alignment pad
+ subq $32, %rsp // 32-byte shadow space plus alignment pad
call *%rax
@@ -74,6 +76,9 @@ ASM_PFX(PeiSwitchStacks): #------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(UnixPeiSwitchStacks)
ASM_PFX(UnixPeiSwitchStacks):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
mov %rdi, %rax
mov %rsi, %rdi
mov %rdx, %rsi
@@ -100,12 +105,16 @@ ASM_PFX(UnixPeiSwitchStacks): #------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(SecSwitchStack)
ASM_PFX(SecSwitchStack):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
mov %rsp, %rax
sub %rdi, %rax
add %rsi, %rax
mov (%rip), %r10
mov %r10, (%rax)
+
+ popq %rbp
ret
\ No newline at end of file |