summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorklebinger.andreas@gmx.at <klebinger.andreas@gmx.at>2019-04-01 16:17:41 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-04-04 08:12:25 -0400
commitcbb8886560e63b662f50965cc96efafa8dd6875a (patch)
tree46cb43baf0f55974aeee7d9d52480f6394ebda45
parent6c0dd085c16bad20f6604ce608df6db275d6bca9 (diff)
downloadhaskell-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.
-rw-r--r--rts/StgCRun.c18
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"