Commit | Line | Data |
---|---|---|
54ddd295 TP |
1 | .syntax unified |
2 | .text | |
3 | ||
4 | .macro entry name, vis, entry_fct | |
5 | .align 2 | |
6 | .\vis \name | |
7 | .\vis __acle_se_\name | |
8 | .thumb | |
9 | .thumb_func | |
10 | .type \name, %function | |
11 | .type __acle_se_\name, %function | |
12 | \name: | |
13 | .ifnb \entry_fct | |
14 | \entry_fct | |
15 | .endif | |
16 | __acle_se_\name: | |
17 | nop | |
18 | .size \name, .-\name | |
19 | .size __acle_se_\name, .-__acle_se_\name | |
20 | .endm | |
21 | ||
22 | @ Valid setups for veneer generation | |
0955507f TP |
23 | .if (VER >= 2) |
24 | entry exported_entry_veneer1, global | |
25 | .endif | |
26 | .if (VER != 4) | |
54ddd295 | 27 | entry exported_entry_veneer2, global |
0955507f TP |
28 | .else |
29 | entry exported_entry_veneer2, weak | |
30 | .endif | |
31 | .if (VER != 2) | |
54ddd295 | 32 | entry exported_entry_veneer3, global |
0955507f TP |
33 | .endif |
34 | .if (VER > 1) | |
35 | entry exported_entry_veneer4, global | |
36 | .endif | |
54ddd295 TP |
37 | |
38 | @ Valid setup for entry function without veneer generation | |
39 | entry exported_entry_fct1, global, sg | |
0955507f | 40 | .if (VER != 4) |
54ddd295 | 41 | entry exported_entry_fct2, global, sg |
0955507f TP |
42 | .else |
43 | @ Invalid setup for entry function without veneer generation | |
44 | entry exported_entry_fct2, global, nop | |
45 | .endif | |
54ddd295 TP |
46 | |
47 | @ Normal symbol not exported to SG import library | |
48 | .align 2 | |
49 | .global not_exported_fct1 | |
50 | .type not_exported_fct1, %function | |
51 | not_exported_fct1: | |
52 | nop | |
53 | .size not_exported_fct1, .-not_exported_fct1 | |
54 | ||
55 | .ifdef CHECK_ERRORS | |
56 | @ Invalid setups for export to SG import library | |
57 | .align 2 | |
58 | .global __acle_se_not_exported_fct2 | |
59 | .type __acle_se_not_exported_fct2, %function | |
60 | __acle_se_not_exported_fct2: | |
61 | nop | |
62 | .size __acle_se_not_exported_fct2, .-__acle_se_not_exported_fct2 | |
63 | ||
64 | .align 2 | |
65 | .global __acle_se_not_exported_pseudoentry_var | |
66 | .global not_exported_pseudoentry_var | |
67 | .data | |
68 | .type __acle_se_not_exported_pseudoentry_var, %object | |
69 | .type not_exported_pseudoentry_var, %object | |
70 | .size not_exported_pseudoentry_var, 4 | |
71 | .size __acle_se_not_exported_pseudoentry_var, 4 | |
72 | __acle_se_not_exported_pseudoentry_var: | |
73 | not_exported_pseudoentry_var: | |
74 | .word 42 | |
75 | .endif |