[LLVMbugs] [Bug 16126] New: [Win32] Incorrect alignment of spill slot
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu May 23 07:28:51 PDT 2013
http://llvm.org/bugs/show_bug.cgi?id=16126
Bug ID: 16126
Summary: [Win32] Incorrect alignment of spill slot
Product: new-bugs
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: babokin at gmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 10571
--> http://llvm.org/bugs/attachment.cgi?id=10571&action=edit
Reproducer
The bug is reproduced on Win32 only, as the platform has small (4-byte) stack
alignment, though the problem may show up on other platforms with small stack
alignment.
To reproduce:
>llvm-as test.ll
>llc test.bc -march=x86 -o test.s
Now check test.s, which contains the following instruction:
por (%esp), %xmm2 # 16-byte Folded Reload
This is illegal, as %esp is aligned by 4, while por requires memory operand to
be aligned by 16 bytes. This causes an exception (an executable returns error
code -1073741819).
The stack slot is allocated as follows:
# *** IR Dump After Virtual Register Rewriter ***:
# Machine code for function f_fu: Post SSA
Frame Objects:
fi#-3: size=4, align=4, fixed, at location [SP+12]
fi#-2: size=4, align=4, fixed, at location [SP+8]
fi#-1: size=4, align=4, fixed, at location [SP+4]
fi#0: size=16, align=16, at location [SP+4] <<<<<<<<<<<<<<<< here's it.
But it's not clear to me how it can be SP based and aligned by 16, while SP is
aligned by 4.
--
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/20130523/69a4cbe2/attachment.html>
More information about the llvm-bugs
mailing list