Home | History | Annotate | Download | only in ld-arm
      1 	.syntax unified
      2 	.arch armv6t2
      3 
      4 	.macro	define,name,type
      5 	.type	\name,%gnu_indirect_function
      6 	\type
      7 \name:
      8 	mov	pc,lr
      9 	.size	\name,.-\name
     10 	.endm
     11 
     12 	.macro	define2,name
     13 	define	aa\name,.arm
     14 	define	at\name,.arm
     15 	define	ab\name,.arm
     16 	define	ta\name,.thumb_func
     17 	define	tt\name,.thumb_func
     18 	define	tb\name,.thumb_func
     19 	.endm
     20 
     21 	.macro	test_relocs,name,width
     22 	bl	\name(PLT)
     23 	b\width \name
     24 	beq\width \name
     25 	ldr	r4,1f
     26 	ldr	r4,2f
     27 1:
     28 	.word	\name(GOT)
     29 2:
     30 	.word	\name(GOT_PREL)
     31 	.endm
     32 
     33 	.macro	test_relocs2,name,type,width
     34 	test_relocs a\type\name,\width
     35 	test_relocs t\type\name,\width
     36 	test_relocs ab\name,\width
     37 	test_relocs tb\name,\width
     38 	.endm
     39 
     40 	.macro	diff,name
     41 	.word	\name
     42 	.word	\name-.
     43 	.endm
     44 
     45 	.macro	alldirs,doit,name
     46 	\doit	aa\name
     47 	\doit	at\name
     48 	\doit	ab\name
     49 	\doit	ta\name
     50 	\doit	tt\name
     51 	\doit	tb\name
     52 	.endm
     53 
     54 	define2	f1
     55 	define2	f2
     56 	define2	f3
     57 	define2	f4
     58 
     59 	alldirs	.globl,f2
     60 
     61 	alldirs	.globl,f3
     62 	alldirs .hidden,f3
     63 
     64 	alldirs	.globl,f4
     65 	alldirs .protected,f4
     66 
     67 	.globl	arm
     68 	.type	arm,%function
     69 	.arm
     70 arm:
     71 	test_relocs foo
     72 	test_relocs2 f1,a,
     73 	test_relocs2 f2,a,
     74 	test_relocs2 f3,a,
     75 	test_relocs2 f4,a,
     76 	.size	arm,.-arm
     77 
     78 	.globl	_thumb
     79 	.type	_thumb,%function
     80 	.thumb_func
     81 _thumb:
     82 	test_relocs foo
     83 	test_relocs2 f1,t,.w
     84 	test_relocs2 f2,t,.w
     85 	test_relocs2 f3,t,.w
     86 	test_relocs2 f4,t,.w
     87 	.size	_thumb,.-_thumb
     88 
     89 	.data
     90 foo:
     91 	.word	0x11223344
     92 	alldirs	diff,f1
     93 	alldirs	diff,f2
     94 	alldirs	diff,f3
     95 	alldirs	diff,f4
     96