mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
ad4c9cc3ec
Summary: In Secure PLT ABI, -fpic is similar to -fPIC. The differences are that: * -fpic stores the address of _GLOBAL_OFFSET_TABLE_ in r30, while -fPIC stores .got2+0x8000. * -fpic uses an addend of 0 for R_PPC_PLTREL24, while -fPIC uses 0x8000. Reviewers: hfinkel, jhibbits, joerg, nemanjai, spetrovic Reviewed By: jhibbits Subscribers: adalava, kbarton, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63563 llvm-svn: 364324
19 lines
620 B
LLVM
19 lines
620 B
LLVM
; RUN: llc < %s -mtriple=powerpc -mattr=+secure-plt -relocation-model=pic | FileCheck -check-prefix=SECURE-PLT-TLS %s
|
|
|
|
@a = thread_local local_unnamed_addr global i32 6, align 4
|
|
define i32 @main() local_unnamed_addr #0 {
|
|
entry:
|
|
%0 = load i32, i32* @a, align 4
|
|
ret i32 %0
|
|
}
|
|
|
|
|
|
!llvm.module.flags = !{!0}
|
|
!0 = !{i32 7, !"PIC Level", i32 1}
|
|
|
|
; SECURE-PLT-TLS: mflr 30
|
|
; SECURE-PLT-TLS-NEXT: addis 30, 30, _GLOBAL_OFFSET_TABLE_-.L0$pb@ha
|
|
; SECURE-PLT-TLS-NEXT: addi 30, 30, _GLOBAL_OFFSET_TABLE_-.L0$pb@l
|
|
; SECURE-PLT-TLS: addi 3, 30, a@got@tlsgd
|
|
; SECURE-PLT-TLS: bl __tls_get_addr(a@tlsgd)@PLT{{$}}
|