crt: Add missing members in setjmp for x86_64. This add MxCsr and FpCsr members in _JUMP_BUFFER sturcture. Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com> Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-crt/misc/longjmp.S b/mingw-w64-crt/misc/longjmp.S index a1318dc..7026ed5 100644 --- a/mingw-w64-crt/misc/longjmp.S +++ b/mingw-w64-crt/misc/longjmp.S
@@ -30,6 +30,9 @@ movq 0x38(%rcx),%r13 /* jmp_buf->R13 */ movq 0x40(%rcx),%r14 /* jmp_buf->R14 */ movq 0x48(%rcx),%r15 /* jmp_buf->R15 */ + ldmxcsr 0x58(%rcx) /* jmp_buf->MxCsr */ + fnclex + fldcw 0x5c(%rcx) /* jmp_buf->FpCsr */ movdqa 0x60(%rcx),%xmm6 /* jmp_buf->Xmm6 */ movdqa 0x70(%rcx),%xmm7 /* jmp_buf->Xmm7 */ movdqa 0x80(%rcx),%xmm8 /* jmp_buf->Xmm8 */
diff --git a/mingw-w64-crt/misc/setjmp.S b/mingw-w64-crt/misc/setjmp.S index b2058e9..0c06b86 100644 --- a/mingw-w64-crt/misc/setjmp.S +++ b/mingw-w64-crt/misc/setjmp.S
@@ -50,6 +50,8 @@ movq %r15,0x48(%rcx) /* jmp_buf->R15 */ movq (%rsp),%rax movq %rax,0x50(%rcx) /* jmp_buf->Rip */ + stmxcsr 0x58(%rcx) /* jmp_buf->MxCsr */ + fnstcw 0x5c(%rcx) /* jmp_buf->FpCsr */ movdqa %xmm6,0x60(%rcx) /* jmp_buf->Xmm6 */ movdqa %xmm7,0x70(%rcx) /* jmp_buf->Xmm7 */ movdqa %xmm8,0x80(%rcx) /* jmp_buf->Xmm8 */
diff --git a/mingw-w64-headers/crt/setjmp.h b/mingw-w64-headers/crt/setjmp.h index eb772a3..4b69efa 100644 --- a/mingw-w64-headers/crt/setjmp.h +++ b/mingw-w64-headers/crt/setjmp.h
@@ -128,7 +128,9 @@ __MINGW_EXTENSION unsigned __int64 R14; __MINGW_EXTENSION unsigned __int64 R15; __MINGW_EXTENSION unsigned __int64 Rip; - __MINGW_EXTENSION unsigned __int64 Spare; + unsigned long MxCsr; + unsigned short FpCsr; + unsigned short Spare; SETJMP_FLOAT128 Xmm6; SETJMP_FLOAT128 Xmm7; SETJMP_FLOAT128 Xmm8;