mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-11 07:18:44 +00:00
205380a4e4
not safe in general because the immediate could be an arbitrary value that does not fit in a 32-bit pcrel displacement. Conservatively fall back to loading the value into a register and calling through it. We still do the optzn on X86-32. llvm-svn: 67142
16 lines
416 B
LLVM
16 lines
416 B
LLVM
; RUN: llvm-as < %s | llc -march=x86 | grep {call.*12345678}
|
|
|
|
; Call to immediate is not safe on x86-64 unless we *know* that the
|
|
; call will be within 32-bits pcrel from the dest immediate.
|
|
|
|
; RUN: llvm-as < %s | llc -march=x86-64 | grep {call.*\*%rax}
|
|
|
|
; PR3666
|
|
; PR3773
|
|
|
|
define i32 @main() nounwind {
|
|
entry:
|
|
%0 = call i32 inttoptr (i32 12345678 to i32 (i32)*)(i32 0) nounwind ; <i32> [#uses=1]
|
|
ret i32 %0
|
|
}
|