diff options
author | gikidy <gikidy@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-06-10 07:14:17 +0000 |
---|---|---|
committer | gikidy <gikidy@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-06-10 07:14:17 +0000 |
commit | 9b9641c6d92c5222a2ad457273cdb9a3b32ecaa3 (patch) | |
tree | a3aa52b39940f0cb19cf508555cbe9d6d7edadb6 /MdePkg/Library/BaseLib/X64/SetJump.asm | |
parent | 6fcb2d910a60879e4fe8e50ec59eab160ad864e3 (diff) | |
download | edk2-platforms-9b9641c6d92c5222a2ad457273cdb9a3b32ecaa3.tar.xz |
Save/Restore xmm6-xmm15 in function setJump/longJump.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8506 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseLib/X64/SetJump.asm')
-rw-r--r-- | MdePkg/Library/BaseLib/X64/SetJump.asm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/MdePkg/Library/BaseLib/X64/SetJump.asm b/MdePkg/Library/BaseLib/X64/SetJump.asm index 2ed581ea9d..5ef8de3bcb 100644 --- a/MdePkg/Library/BaseLib/X64/SetJump.asm +++ b/MdePkg/Library/BaseLib/X64/SetJump.asm @@ -47,6 +47,18 @@ SetJump PROC mov [rcx + 38h], r14
mov [rcx + 40h], r15
mov [rcx + 48h], rdx
+ ; save non-volatile fp registers
+ stmxcsr [rcx + 50h]
+ movdqu [rcx + 58h], xmm6
+ movdqu [rcx + 68h], xmm7
+ movdqu [rcx + 78h], xmm8
+ movdqu [rcx + 88h], xmm9
+ movdqu [rcx + 98h], xmm10
+ movdqu [rcx + 0A8h], xmm11
+ movdqu [rcx + 0B8h], xmm12
+ movdqu [rcx + 0C8h], xmm13
+ movdqu [rcx + 0D8h], xmm14
+ movdqu [rcx + 0E8h], xmm15
xor rax, rax
jmp rdx
SetJump ENDP
|