mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
For general dynamic TLS access we must use
leaq foo@TLSGD(%rip), %rdi as part of the instruction sequence. Using a register other than %rdi and then copying it to %rdi is not valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69350 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
; RUN: llvm-as < %s | llc -march=x86-64 -mtriple=x86_64-linux-gnu -relocation-model=pic -regalloc=local > %t
|
||||
; RUN: grep {leaq foo@TLSGD(%rip), %rdi} %t
|
||||
|
||||
@foo = internal thread_local global i32 100
|
||||
|
||||
define void @f(i32 %n) nounwind {
|
||||
entry:
|
||||
%n_addr = alloca i32
|
||||
%p = alloca i32*
|
||||
%"alloca point" = bitcast i32 0 to i32
|
||||
store i32 %n, i32* %n_addr
|
||||
store i32* @foo, i32** %p, align 8
|
||||
br label %return
|
||||
|
||||
return:
|
||||
ret void
|
||||
}
|
||||
Reference in New Issue
Block a user