ld: Xfail pr20995 and pr20995-2 for tic6x-*-*
[deliverable/binutils-gdb.git] / ld / testsuite / ld-arm / cmse-veneers.s
1 .syntax unified
2 .thumb
3 .file "foo.c"
4 .text
5
6 .macro decltype name, type
7 .ifc \type,object
8 .data
9 .else
10 .thumb
11 .thumb_func
12 .endif
13 .type \name, %\type
14 .endm
15
16
17 .macro entry name, type, vis, typespc, visspc, entry_fct
18 .align 2
19 .ifb \visspc
20 .\vis __acle_se_\name
21 .else
22 .\visspc __acle_se_\name
23 .endif
24 .\vis \name
25 .thumb
26 .thumb_func
27 .ifb \typespc
28 decltype __acle_se_\name, \type
29 .else
30 decltype __acle_se_\name, \typespc
31 .endif
32 decltype \name, \type
33 __acle_se_\name:
34 \entry_fct
35 \name:
36 .ifc \type,object
37 .word 42
38 .else
39 nop
40 .endif
41 .size \name, .-\name
42 .size __acle_se_\name, .-__acle_se_\name
43 .endm
44
45
46 .ifndef CHECK_ERRORS
47 @ Valid setups for veneer generation
48 entry glob_entry_veneer1, function, global
49 entry weak_entry_veneer1, function, weak
50 entry glob_entry_veneer2, function, global, visspc=weak
51 entry weak_entry_veneer2, function, weak, visspc=global
52
53 @ Valid setup for entry function without SG veneer
54 entry glob_entry_fct, function, global, entry_fct=nop
55
56 @ Valid setup for entry function with absolute address
57 .align 2
58 .global __acle_se_abs_entry_fct
59 .global abs_entry_fct
60 .type __acle_se_abs_entry_fct, %function
61 .type abs_entry_fct, %function
62 __acle_se_abs_entry_fct = 0x10000
63 abs_entry_fct = 0x10004
64 .size abs_entry_fct, 0
65 .size __acle_se_abs_entry_fct, 0
66 .else
67 @ Invalid setups for veneer generation (visibility)
68 entry loc_entry_veneer1, function, local
69 entry loc_entry_veneer2, function, global, visspc=local
70 entry loc_entry_veneer3, function, local, visspc=global
71 entry loc_entry_veneer4, function, weak, visspc=local
72 entry loc_entry_veneer5, function, local, visspc=weak
73
74 @ Invalid setups for veneer generation (absent standard symbol)
75 .align 2
76 .global __acle_se_fake_entry_veneer1
77 .thumb
78 .thumb_func
79 .type __acle_se_fake_entry_veneer1, %function
80 __acle_se_fake_entry_veneer1:
81 nop
82 .size __acle_se_fake_entry_veneer1, .-__acle_se_fake_entry_veneer1
83
84 @ Invalid setups for veneer generation (type)
85 entry obj_entry_veneer1, object, global, typespc=function
86 entry obj_entry_veneer2, function, global, typespc=object
87
88 @ Invalid setup for veneer generation (sections)
89 .section .text.sub1
90 .align 2
91 .thumb
92 .thumb_func
93 .global __acle_se_fake_entry_veneer2
94 .type __acle_se_fake_entry_veneer2, %function
95 __acle_se_fake_entry_veneer2:
96 nop
97 .size __acle_se_fake_entry_veneer2, .-__acle_se_fake_entry_veneer2
98 .section .text.sub2
99 .align 2
100 .thumb
101 .thumb_func
102 .global fake_entry_veneer2
103 .type fake_entry_veneer2, %function
104 fake_entry_veneer2:
105 nop
106 .size fake_entry_veneer2, .-fake_entry_veneer2
107 .endif
This page took 0.032577 seconds and 4 git commands to generate.