Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-arm / ifunc-8.s
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 f3
56
57         alldirs .globl,f3
58         alldirs .hidden,f3
59
60         .globl  arm
61         .type   arm,%function
62         .arm
63 arm:
64         test_relocs foo
65         test_relocs2 f1,a,
66         test_relocs2 f2,a,
67         test_relocs2 f3,a,
68         test_relocs2 f4,a,
69         .size   arm,.-arm
70
71         .globl  _thumb
72         .type   _thumb,%function
73         .thumb_func
74 _thumb:
75         test_relocs foo
76         test_relocs2 f1,t,.w
77         test_relocs2 f2,t,.w
78         test_relocs2 f3,t,.w
79         test_relocs2 f4,t,.w
80         .size   _thumb,.-_thumb
81
82         .data
83 foo:
84         .word   0x11223344
85         alldirs diff,f1
86         alldirs diff,f2
87         alldirs diff,f3
88         alldirs diff,f4