76 lines
1.7 KiB
ArmAsm
76 lines
1.7 KiB
ArmAsm
.syntax unified
|
|
.text
|
|
|
|
.macro entry name, vis, entry_fct
|
|
.align 2
|
|
.\vis \name
|
|
.\vis __acle_se_\name
|
|
.thumb
|
|
.thumb_func
|
|
.type \name, %function
|
|
.type __acle_se_\name, %function
|
|
\name:
|
|
.ifnb \entry_fct
|
|
\entry_fct
|
|
.endif
|
|
__acle_se_\name:
|
|
nop
|
|
.size \name, .-\name
|
|
.size __acle_se_\name, .-__acle_se_\name
|
|
.endm
|
|
|
|
@ Valid setups for veneer generation
|
|
.if (VER >= 2)
|
|
entry exported_entry_veneer1, global
|
|
.endif
|
|
.if (VER != 4)
|
|
entry exported_entry_veneer2, global
|
|
.else
|
|
entry exported_entry_veneer2, weak
|
|
.endif
|
|
.if (VER != 2)
|
|
entry exported_entry_veneer3, global
|
|
.endif
|
|
.if (VER > 1)
|
|
entry exported_entry_veneer4, global
|
|
.endif
|
|
|
|
@ Valid setup for entry function without veneer generation
|
|
entry exported_entry_fct1, global, sg
|
|
.if (VER != 4)
|
|
entry exported_entry_fct2, global, sg
|
|
.else
|
|
@ Invalid setup for entry function without veneer generation
|
|
entry exported_entry_fct2, global, nop
|
|
.endif
|
|
|
|
@ Normal symbol not exported to SG import library
|
|
.align 2
|
|
.global not_exported_fct1
|
|
.type not_exported_fct1, %function
|
|
not_exported_fct1:
|
|
nop
|
|
.size not_exported_fct1, .-not_exported_fct1
|
|
|
|
.ifdef CHECK_ERRORS
|
|
@ Invalid setups for export to SG import library
|
|
.align 2
|
|
.global __acle_se_not_exported_fct2
|
|
.type __acle_se_not_exported_fct2, %function
|
|
__acle_se_not_exported_fct2:
|
|
nop
|
|
.size __acle_se_not_exported_fct2, .-__acle_se_not_exported_fct2
|
|
|
|
.align 2
|
|
.global __acle_se_not_exported_pseudoentry_var
|
|
.global not_exported_pseudoentry_var
|
|
.data
|
|
.type __acle_se_not_exported_pseudoentry_var, %object
|
|
.type not_exported_pseudoentry_var, %object
|
|
.size not_exported_pseudoentry_var, 4
|
|
.size __acle_se_not_exported_pseudoentry_var, 4
|
|
__acle_se_not_exported_pseudoentry_var:
|
|
not_exported_pseudoentry_var:
|
|
.word 42
|
|
.endif
|