There is no guarantee that jmp_buf is 16 bytes aligned.
Signed-off-by: Paul Gofman pgofman@codeweavers.com --- dlls/winecrt0/exception.c | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/dlls/winecrt0/exception.c b/dlls/winecrt0/exception.c index 137ee2d6ee3..d3ce8d1aebb 100644 --- a/dlls/winecrt0/exception.c +++ b/dlls/winecrt0/exception.c @@ -80,16 +80,16 @@ __ASM_GLOBAL_FUNC( __wine_setjmpex, "movq %r15,0x48(%rcx)\n\t" /* jmp_buf->R15 */ "movq (%rsp),%rax\n\t" "movq %rax,0x50(%rcx)\n\t" /* jmp_buf->Rip */ - "movdqa %xmm6,0x60(%rcx)\n\t" /* jmp_buf->Xmm6 */ - "movdqa %xmm7,0x70(%rcx)\n\t" /* jmp_buf->Xmm7 */ - "movdqa %xmm8,0x80(%rcx)\n\t" /* jmp_buf->Xmm8 */ - "movdqa %xmm9,0x90(%rcx)\n\t" /* jmp_buf->Xmm9 */ - "movdqa %xmm10,0xa0(%rcx)\n\t" /* jmp_buf->Xmm10 */ - "movdqa %xmm11,0xb0(%rcx)\n\t" /* jmp_buf->Xmm11 */ - "movdqa %xmm12,0xc0(%rcx)\n\t" /* jmp_buf->Xmm12 */ - "movdqa %xmm13,0xd0(%rcx)\n\t" /* jmp_buf->Xmm13 */ - "movdqa %xmm14,0xe0(%rcx)\n\t" /* jmp_buf->Xmm14 */ - "movdqa %xmm15,0xf0(%rcx)\n\t" /* jmp_buf->Xmm15 */ + "movq %xmm6,0x60(%rcx)\n\t" /* jmp_buf->Xmm6 */ + "movq %xmm7,0x70(%rcx)\n\t" /* jmp_buf->Xmm7 */ + "movq %xmm8,0x80(%rcx)\n\t" /* jmp_buf->Xmm8 */ + "movq %xmm9,0x90(%rcx)\n\t" /* jmp_buf->Xmm9 */ + "movq %xmm10,0xa0(%rcx)\n\t" /* jmp_buf->Xmm10 */ + "movq %xmm11,0xb0(%rcx)\n\t" /* jmp_buf->Xmm11 */ + "movq %xmm12,0xc0(%rcx)\n\t" /* jmp_buf->Xmm12 */ + "movq %xmm13,0xd0(%rcx)\n\t" /* jmp_buf->Xmm13 */ + "movq %xmm14,0xe0(%rcx)\n\t" /* jmp_buf->Xmm14 */ + "movq %xmm15,0xf0(%rcx)\n\t" /* jmp_buf->Xmm15 */ "xorq %rax,%rax\n\t" "retq" )
@@ -103,16 +103,16 @@ __ASM_GLOBAL_FUNC( __wine_longjmp, "movq 0x38(%rcx),%r13\n\t" /* jmp_buf->R13 */ "movq 0x40(%rcx),%r14\n\t" /* jmp_buf->R14 */ "movq 0x48(%rcx),%r15\n\t" /* jmp_buf->R15 */ - "movdqa 0x60(%rcx),%xmm6\n\t" /* jmp_buf->Xmm6 */ - "movdqa 0x70(%rcx),%xmm7\n\t" /* jmp_buf->Xmm7 */ - "movdqa 0x80(%rcx),%xmm8\n\t" /* jmp_buf->Xmm8 */ - "movdqa 0x90(%rcx),%xmm9\n\t" /* jmp_buf->Xmm9 */ - "movdqa 0xa0(%rcx),%xmm10\n\t" /* jmp_buf->Xmm10 */ - "movdqa 0xb0(%rcx),%xmm11\n\t" /* jmp_buf->Xmm11 */ - "movdqa 0xc0(%rcx),%xmm12\n\t" /* jmp_buf->Xmm12 */ - "movdqa 0xd0(%rcx),%xmm13\n\t" /* jmp_buf->Xmm13 */ - "movdqa 0xe0(%rcx),%xmm14\n\t" /* jmp_buf->Xmm14 */ - "movdqa 0xf0(%rcx),%xmm15\n\t" /* jmp_buf->Xmm15 */ + "movq 0x60(%rcx),%xmm6\n\t" /* jmp_buf->Xmm6 */ + "movq 0x70(%rcx),%xmm7\n\t" /* jmp_buf->Xmm7 */ + "movq 0x80(%rcx),%xmm8\n\t" /* jmp_buf->Xmm8 */ + "movq 0x90(%rcx),%xmm9\n\t" /* jmp_buf->Xmm9 */ + "movq 0xa0(%rcx),%xmm10\n\t" /* jmp_buf->Xmm10 */ + "movq 0xb0(%rcx),%xmm11\n\t" /* jmp_buf->Xmm11 */ + "movq 0xc0(%rcx),%xmm12\n\t" /* jmp_buf->Xmm12 */ + "movq 0xd0(%rcx),%xmm13\n\t" /* jmp_buf->Xmm13 */ + "movq 0xe0(%rcx),%xmm14\n\t" /* jmp_buf->Xmm14 */ + "movq 0xf0(%rcx),%xmm15\n\t" /* jmp_buf->Xmm15 */ "movq 0x50(%rcx),%rdx\n\t" /* jmp_buf->Rip */ "movq 0x10(%rcx),%rsp\n\t" /* jmp_buf->Rsp */ "jmp *%rdx" )