Index: llvm/trunk/lib/Target/X86/X86FrameLowering.cpp =================================================================== --- llvm/trunk/lib/Target/X86/X86FrameLowering.cpp +++ llvm/trunk/lib/Target/X86/X86FrameLowering.cpp @@ -1436,8 +1436,7 @@ } // Emit DWARF info specifying the offsets of the callee-saved registers. - if (PushedRegs) - emitCalleeSavedFrameMoves(MBB, MBBI, DL); + emitCalleeSavedFrameMoves(MBB, MBBI, DL); } // X86 Interrupt handling function cannot assume anything about the direction Index: llvm/trunk/test/CodeGen/X86/cfi-xmm.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/cfi-xmm.ll +++ llvm/trunk/test/CodeGen/X86/cfi-xmm.ll @@ -0,0 +1,21 @@ +; RUN: llc -mtriple x86_64-w64-windows-gnu -filetype=asm -exception-model=dwarf -o - %s | FileCheck %s + +define void @_Z1fv() { +entry: + tail call void asm sideeffect "", "~{xmm10},~{xmm15},~{dirflag},~{fpsr},~{flags}"() + ret void +} + +; CHECK-LABEL: _Z1fv: +; CHECK: .cfi_startproc +; CHECK: subq $40, %rsp +; CHECK: movaps %xmm15, 16(%rsp) +; CHECK: movaps %xmm10, (%rsp) +; CHECK: .cfi_def_cfa_offset 48 +; CHECK: .cfi_offset %xmm10, -48 +; CHECK: .cfi_offset %xmm15, -32 +; CHECK: movaps (%rsp), %xmm10 +; CHECK: movaps 16(%rsp), %xmm15 +; CHECK: addq $40, %rsp +; CHECK: retq +; CHECK: .cfi_endproc