bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/21197] New: Why Function Argument Did Not Pass in SSE Regi


From: rudyy.id at gmail dot com
Subject: [Bug binutils/21197] New: Why Function Argument Did Not Pass in SSE Register With Attributes sseregparm When Param Data Type is Long Double?
Date: Thu, 23 Feb 2017 20:51:21 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=21197

            Bug ID: 21197
           Summary: Why Function Argument Did Not Pass in SSE Register
                    With Attributes sseregparm When Param Data Type is
                    Long Double?
           Product: binutils
           Version: 2.28
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: rudyy.id at gmail dot com
  Target Milestone: ---

This is the wrong assembler code generate by as (I think):

/* xmm6 is Long Double */
 69660 2e392 0F29B424           movaps  XMMWORD PTR 256[rsp], xmm6
 69660      00010000 
/* xmm6 in the stack */
 69661 2e39a 488DAC24           lea     rbp, 256[rsp]
 69661      00010000
/* xmm6 should goes into xmm0 not stack (rcx) */
 69662 2e3a2 4889E9             mov     rcx, rbp
/* ldclass Only support parameter passing in xmm0 not stack (RCX) */
 69663 2e3a5 FF150000           call    [QWORD PTR .refptr.__imp__ldclass[rip]]

The correct code should be like this:
movaps  xmm0, xmm6
call    [QWORD PTR .refptr.__imp__ldclass[rip]]

Is this a bug?
If its not, can someone help me, how to make the code look like above?

Thanks.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]