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

Reply via email to