[LLVMbugs] [Bug 8743] New: Register allocation is invalid with Win64 tailcall jump
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Dec 6 02:59:04 PST 2010
http://llvm.org/bugs/show_bug.cgi?id=8743
Summary: Register allocation is invalid with Win64 tailcall
jump
Product: libraries
Version: trunk
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: geek4civic at gmail.com
CC: llvmbugs at cs.uiuc.edu
; llc -O1 -mtriple=x86_64-mingw64
%class = type { [8 x i8] }
%vt = type { i32 (...)** }
define %vt* @_ZN4llvm9UnsetInit20convertInitializerToEPNS_5RecTyE(%class*
%this, %vt* %Ty) align 2 {
entry:
%0 = bitcast %vt* %Ty to %vt* (%vt*, %class*)***
%vtable = load %vt* (%vt*, %class*)*** %0, align 8
%vfn = getelementptr inbounds %vt* (%vt*, %class*)** %vtable, i64 4
%1 = load %vt* (%vt*, %class*)** %vfn, align 8
%call = tail call %vt* %1(%vt* %Ty, %class* %this)
ret %vt* %call
}
----
_ZN4llvm9UnsetInit20convertInitializerToEPNS_5RecTyE:
# BB#0: # %entry
subq $216, %rsp
Ltmp0:
movaps %xmm15, 32(%rsp) # 16-byte Spill
movaps %xmm14, 48(%rsp) # 16-byte Spill
movaps %xmm13, 64(%rsp) # 16-byte Spill
movaps %xmm12, 80(%rsp) # 16-byte Spill
movaps %xmm11, 96(%rsp) # 16-byte Spill
movaps %xmm10, 112(%rsp) # 16-byte Spill
movaps %xmm9, 128(%rsp) # 16-byte Spill
movaps %xmm8, 144(%rsp) # 16-byte Spill
movaps %xmm7, 160(%rsp) # 16-byte Spill
movaps %xmm6, 176(%rsp) # 16-byte Spill
movq %rsi, 200(%rsp) # 8-byte Spill
movq %rdi, 208(%rsp) # 8-byte Spill
movq %rcx, %rax
movq (%rdx), %rcx
movq 32(%rcx), %rsi
movq %rdx, %rcx
movq %rax, %rdx
movq 208(%rsp), %rdi # 8-byte Reload
movq 200(%rsp), %rsi # 8-byte Reload
movaps 176(%rsp), %xmm6 # 16-byte Reload
movaps 160(%rsp), %xmm7 # 16-byte Reload
movaps 144(%rsp), %xmm8 # 16-byte Reload
movaps 128(%rsp), %xmm9 # 16-byte Reload
movaps 112(%rsp), %xmm10 # 16-byte Reload
movaps 96(%rsp), %xmm11 # 16-byte Reload
movaps 80(%rsp), %xmm12 # 16-byte Reload
movaps 64(%rsp), %xmm13 # 16-byte Reload
movaps 48(%rsp), %xmm14 # 16-byte Reload
movaps 32(%rsp), %xmm15 # 16-byte Reload
addq $216, %rsp
jmpq *%rsi # TAILCALL
----
%RSI should not be used for tail jump.
FYI, I don't meet this issue with -regalloc=pbqp.
--
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