• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# REQUIRES: ppc
2
3# RUN: llvm-mc -filetype=obj -triple=powerpc64 %s -o %t
4# RUN: ld.lld -r %t -o %t2
5# RUN: llvm-objdump -s --section=.symtab %t2 | FileCheck %s
6
7.text
8.abiversion 2
9.globl  _start
10.p2align	2
11.type   _start,@function
12
13_start:
14.Lfunc_begin0:
15.Lfunc_gep0:
16	addis 2, 12, .TOC.-.Lfunc_gep0@ha
17	addi 2, 2, .TOC.-.Lfunc_gep0@l
18.Lfunc_lep0:
19	.localentry	_start, .Lfunc_lep0-.Lfunc_gep0
20	# The code below is not important, it just needs to access some
21	# global data or function, in order to use the TOC.
22	# In this case, it performs the following:
23	# g += 10;
24	# Also note that this code is not intended to be run, but only
25	# to check if the linker will preserve the localentry info.
26	addis 3, 2, g@toc@ha
27	addi 3, 3, g@toc@l
28	lwz 4, 0(3)
29	addi 4, 4, 10
30	stw 4, 0(3)
31	blr
32	.long	0
33	.quad	0
34.Lfunc_end0:
35	.size   _start, .Lfunc_end0-.Lfunc_begin0
36
37	.type	g,@object               # @g
38	.lcomm	g,4,4
39
40// We expect the st_other byte to be 0x60:
41// localentry = 011 (gep + 2 instructions), reserved = 000,
42// visibility = 00 (STV_DEFAULT)
43// Currently, llvm-objdump does not support displaying
44// st_other's PPC64 specific flags, thus we check the
45// result of the hexdump of .symtab section.
46
47// CHECK: 0070 00000000 00000000 00000009 12600001
48