mov r13, [rcx + 30h]\r
mov r14, [rcx + 38h]\r
mov r15, [rcx + 40h]\r
- mov rax, rdx ; set return value\r
+ ; load non-volatile fp registers\r
+ ldmxcsr [rcx + 50h]\r
+ movdqu xmm6, [rcx + 58h]\r
+ movdqu xmm7, [rcx + 68h]\r
+ movdqu xmm8, [rcx + 78h]\r
+ movdqu xmm9, [rcx + 88h]\r
+ movdqu xmm10, [rcx + 98h]\r
+ movdqu xmm11, [rcx + 0A8h]\r
+ movdqu xmm12, [rcx + 0B8h]\r
+ movdqu xmm13, [rcx + 0C8h]\r
+ movdqu xmm14, [rcx + 0D8h]\r
+ movdqu xmm15, [rcx + 0E8h]\r
+ mov rax, rdx ; set return value\r
jmp qword ptr [rcx + 48h]\r
InternalLongJump ENDP\r
\r
mov [rcx + 38h], r14\r
mov [rcx + 40h], r15\r
mov [rcx + 48h], rdx\r
+ ; save non-volatile fp registers\r
+ stmxcsr [rcx + 50h]\r
+ movdqu [rcx + 58h], xmm6\r
+ movdqu [rcx + 68h], xmm7\r
+ movdqu [rcx + 78h], xmm8\r
+ movdqu [rcx + 88h], xmm9\r
+ movdqu [rcx + 98h], xmm10\r
+ movdqu [rcx + 0A8h], xmm11\r
+ movdqu [rcx + 0B8h], xmm12\r
+ movdqu [rcx + 0C8h], xmm13\r
+ movdqu [rcx + 0D8h], xmm14\r
+ movdqu [rcx + 0E8h], xmm15\r
xor rax, rax\r
jmp rdx\r
SetJump ENDP\r