[LLVMbugs] [Bug 1776] New: movaps being generated despite alignment 1 being specified

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Sun Nov 4 23:16:08 PST 2007


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

           Summary: movaps being generated despite alignment 1 being
                    specified
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: Backend: X86
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: evan.cheng at apple.com
                CC: llvmbugs at cs.uiuc.edu


Reported by Chuck Rose. See
http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-October/011167.html

JITTed code contains a movaps which is bad news for targets where stack is not
being aligned on 16-byte boundary"

15D10012  sub         esp,4Ch
15D10015  mov         eax,dword ptr [esp+60h]
15D10019  movups      xmm0,xmmword ptr [eax]
15D1001C  movaps      xmmword ptr [esp+8],xmm0    ß why did this become a
movaps?
15D10021  movups      xmmword ptr [esp+28h],xmm0
15D10026  mov         esi,dword ptr [esp+58h]
15D1002A  mov         edi,dword ptr [esp+5Ch]
15D1002E  mov         dword ptr [esp],40000000h
15D10035  call        X86CompilationCallback (1335030h)

The movaps is generated for spill /restore.

Windows align stack on 8-byte boundary, so until the x86 target can align stack
for functions that use SSE on 16-byte on 16-byte, it should use movups for SSE
register spill / restore.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the llvm-bugs mailing list