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. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils