[LLVMbugs] [Bug 16168] New: 128-bit ABI on Windows incorrectly generated

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue May 28 13:54:26 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=16168

            Bug ID: 16168
           Summary: 128-bit ABI on Windows incorrectly generated
           Product: new-bugs
           Version: 3.2
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: vtjnash at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 10590
  --> http://llvm.org/bugs/attachment.cgi?id=10590&action=edit
128-bit calling convention test code

The calling convention of calls generated for Windows x86-64 appears to be
incorrectly using an approximation of the Linux ABI instead of the Windows ABI
for 128-bit numbers.

What I expect to see is that the the number is passed on the stack with a
pointer passed in the corresponding register
(http://msdn.microsoft.com/en-us/library/zthk2dkh.aspx). What I see is that the
number is passed using two registers.

X86CallingConv.td appears to have the correct statement under CC_X86_Win64_C
that "// 128 bit vectors are passed by pointer", so I couldn't follow where in
the code the incorrect transform is being applied.

I have attached some sample code that trivially exercises the 128-bit calling
convention.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130528/685ad11e/attachment.html>


More information about the llvm-bugs mailing list