// RUN: llvm-mc -triple riscv64 -filetype obj -o %t.o %s
// RUN: ld.lld --emit-relocs -o %t %t.o
// RUN: llvm-bolt --print-cfg --print-only=tls_le,tls_ie -o %t.null %t \
// RUN: | FileCheck %s
// CHECK-LABEL: Binary Function "tls_le{{.*}}" after building cfg {
// CHECK: lui a5, 0x0
// CHECK-NEXT: add a5, a5, tp
// CHECK-NEXT: lw t0, 0x0(a5)
// CHECK-NEXT: sw t0, 0x0(a5)
// CHECK-LABEL: Binary Function "tls_ie" after building cfg {
// CHECK-LABEL: .LBB01
// CHECK: auipc a0, %pcrel_hi(__BOLT_got_zero+{{[0-9]+}})
// CHECK-NEXT: ld a0, %pcrel_lo(.Ltmp0)(a0)
.text
.globl tls_le, _start
.p2align 2
tls_le:
_start:
nop
lui a5, %tprel_hi(i)
add a5, a5, tp, %tprel_add(i)
lw t0, %tprel_lo(i)(a5)
sw t0, %tprel_lo(i)(a5)
ret
.size _start, .-_start
.globl tls_ie
.p2align 2
tls_ie:
nop
la.tls.ie a0, i
ret
.size tls_ie, .-tls_ie
.section .tbss,"awT",@nobits
.type i,@object
.globl i
.p2align 3
i:
.quad 0
.size i, .-i