diff options
author | klebinger.andreas@gmx.at <klebinger.andreas@gmx.at> | 2019-04-01 16:17:41 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-04-04 08:12:25 -0400 |
commit | cbb8886560e63b662f50965cc96efafa8dd6875a (patch) | |
tree | 46cb43baf0f55974aeee7d9d52480f6394ebda45 /rts/StgCRun.c | |
parent | 6c0dd085c16bad20f6604ce608df6db275d6bca9 (diff) | |
download | haskell-cbb8886560e63b662f50965cc96efafa8dd6875a.tar.gz |
Restore Xmm registers properly in StgCRun.c
This fixes #16514: Xmm6-15 was restored based off rax instead of rsp.
The code was introduced in the fix for #14619.
Diffstat (limited to 'rts/StgCRun.c')
-rw-r--r-- | rts/StgCRun.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/rts/StgCRun.c b/rts/StgCRun.c index 1b0a8f2d70..934926e0f3 100644 --- a/rts/StgCRun.c +++ b/rts/StgCRun.c @@ -494,15 +494,15 @@ StgRunIsImplementedInAssembler(void) "movq 48(%%rsp),%%rdi\n\t" "movq 56(%%rsp),%%rsi\n\t" "movq 64(%%rsp),%%xmm6\n\t" - "movq 72(%%rax),%%xmm7\n\t" - "movq 80(%%rax),%%xmm8\n\t" - "movq 88(%%rax),%%xmm9\n\t" - "movq 96(%%rax),%%xmm10\n\t" - "movq 104(%%rax),%%xmm11\n\t" - "movq 112(%%rax),%%xmm12\n\t" - "movq 120(%%rax),%%xmm13\n\t" - "movq 128(%%rax),%%xmm14\n\t" - "movq 136(%%rax),%%xmm15\n\t" + "movq 72(%%rsp),%%xmm7\n\t" + "movq 80(%%rsp),%%xmm8\n\t" + "movq 88(%%rsp),%%xmm9\n\t" + "movq 96(%%rsp),%%xmm10\n\t" + "movq 104(%%rsp),%%xmm11\n\t" + "movq 112(%%rsp),%%xmm12\n\t" + "movq 120(%%rsp),%%xmm13\n\t" + "movq 128(%%rsp),%%xmm14\n\t" + "movq 136(%%rsp),%%xmm15\n\t" #endif "addq %1, %%rsp\n\t" "retq" |