http://llvm.org/bugs/show_bug.cgi?id=22521
Bug ID: 22521
Summary: Win64 savexmm unwind opcodes are at the wrong offset
in the wrong order
Product: libraries
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Classification: Unclassified
$ cat t.c
void g();
double f(double a, double b) {
g();
return a + b;
}
$ clang -m64 -O2 -S t.c -o - | grep 'xmm\|seh'
.seh_proc f
.seh_stackalloc 72
movaps %xmm7, 48(%rsp) # 16-byte Spill
movaps %xmm6, 32(%rsp) # 16-byte Spill
.seh_savexmm 6, 32
.seh_savexmm 7, 48
.seh_endprologue
...
The placement of the assembler directive is recorded as an offset in the object
file and we should try to get it right so that users can unwind properly from
between XMM saves.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs