forked from OSchip/llvm-project
builtins: tag with noexecstack
These routines do not require executable stacks. However, by default ELFish linkers may assume an executable stack on GNUish environments (and some non-GNU ones too!). The GNU extension to add a note to indicate a non-executable stack is honoured by these environments to mark the stack as non-executable (the compiler normally emits this directive on appropriate targets whenever possible). This allows normal builds from getting executable stacks due to linking to the compiler rt builtins. llvm-svn: 273500
This commit is contained in:
parent
928a95d0b0
commit
590e85b575
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__adddf3vfp)
|
|||
vmov r0, r1, d6 // move result back to r0/r1 pair
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__adddf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__addsf3vfp)
|
|||
vmov r0, s14 // move result back to r0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__addsf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -94,3 +94,5 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
|
|||
b __aeabi_cdcmple
|
||||
END_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -89,3 +89,5 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
|
|||
b __aeabi_cfcmple
|
||||
END_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -38,3 +38,6 @@ DEFINE_AEABI_DCMP(lt)
|
|||
DEFINE_AEABI_DCMP(le)
|
||||
DEFINE_AEABI_DCMP(ge)
|
||||
DEFINE_AEABI_DCMP(gt)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -38,3 +38,6 @@ DEFINE_AEABI_FCMP(lt)
|
|||
DEFINE_AEABI_FCMP(le)
|
||||
DEFINE_AEABI_FCMP(ge)
|
||||
DEFINE_AEABI_FCMP(gt)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -26,3 +26,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_idivmod)
|
|||
add sp, sp, #4
|
||||
pop { pc }
|
||||
END_COMPILERRT_FUNCTION(__aeabi_idivmod)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -29,3 +29,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_ldivmod)
|
|||
add sp, sp, #16
|
||||
pop {r11, pc}
|
||||
END_COMPILERRT_FUNCTION(__aeabi_ldivmod)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,6 @@ END_COMPILERRT_FUNCTION(__aeabi_memcmp)
|
|||
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp4, __aeabi_memcmp)
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __aeabi_memcmp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,6 @@ END_COMPILERRT_FUNCTION(__aeabi_memcpy)
|
|||
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy4, __aeabi_memcpy)
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy8, __aeabi_memcpy)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,6 @@ END_COMPILERRT_FUNCTION(__aeabi_memmove)
|
|||
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove4, __aeabi_memmove)
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __aeabi_memmove)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -32,3 +32,5 @@ END_COMPILERRT_FUNCTION(__aeabi_memclr)
|
|||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr4, __aeabi_memclr)
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr8, __aeabi_memclr)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_uidivmod)
|
|||
add sp, sp, #4
|
||||
pop { pc }
|
||||
END_COMPILERRT_FUNCTION(__aeabi_uidivmod)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -29,3 +29,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_uldivmod)
|
|||
add sp, sp, #16
|
||||
pop {r11, pc}
|
||||
END_COMPILERRT_FUNCTION(__aeabi_uldivmod)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -45,3 +45,6 @@ DEFINE_COMPILERRT_FUNCTION(__bswapdi2)
|
|||
mov r1, r2 // r1 = r2 = rev(r0)
|
||||
JMP(lr)
|
||||
END_COMPILERRT_FUNCTION(__bswapdi2)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -37,3 +37,6 @@ DEFINE_COMPILERRT_FUNCTION(__bswapsi2)
|
|||
#endif
|
||||
JMP(lr)
|
||||
END_COMPILERRT_FUNCTION(__bswapsi2)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -95,3 +95,6 @@ DEFINE_COMPILERRT_FUNCTION(__clzdi2)
|
|||
JMP(lr)
|
||||
#endif // __ARM_FEATURE_CLZ
|
||||
END_COMPILERRT_FUNCTION(__clzdi2)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -74,3 +74,6 @@ DEFINE_COMPILERRT_FUNCTION(__clzsi2)
|
|||
JMP(lr)
|
||||
#endif // __ARM_FEATURE_CLZ
|
||||
END_COMPILERRT_FUNCTION(__clzsi2)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -146,3 +146,6 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2)
|
|||
END_COMPILERRT_FUNCTION(__unordsf2)
|
||||
|
||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_fcmpun, __unordsf2)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__divdf3vfp)
|
|||
vmov r0, r1, d5 // move result back to r0/r1 pair
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__divdf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -72,3 +72,6 @@ LOCAL_LABEL(divzero):
|
|||
CLEAR_FRAME_AND_RETURN
|
||||
#endif
|
||||
END_COMPILERRT_FUNCTION(__divmodsi4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__divsf3vfp)
|
|||
vmov r0, s13 // move result back to r0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__divsf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -63,3 +63,6 @@ ESTABLISH_FRAME
|
|||
CLEAR_FRAME_AND_RETURN
|
||||
#endif
|
||||
END_COMPILERRT_FUNCTION(__divsi3)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
|
|||
movne r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__eqdf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
|
|||
movne r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__eqsf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__extendsfdf2vfp)
|
|||
vmov r0, r1, d7 // return result in r0/r1 pair
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__extendsfdf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp)
|
|||
vmov r0, s15 // move s15 to result register
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__fixdfsivfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp)
|
|||
vmov r0, s15 // move s15 to result register
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__fixsfsivfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -25,3 +25,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp)
|
|||
vmov r0, s15 // move s15 to result register
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__fixunsdfsivfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -25,3 +25,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp)
|
|||
vmov r0, s15 // move s15 to result register
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__fixunssfsivfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatsidfvfp)
|
|||
vmov r0, r1, d7 // move d7 to result register pair r0/r1
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__floatsidfvfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp)
|
|||
vmov r0, s15 // move s15 to result register
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__floatsisfvfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp)
|
|||
vmov r0, r1, d7 // move d7 to result register pair r0/r1
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__floatunssidfvfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp)
|
|||
vmov r0, s15 // move s15 to result register
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__floatunssisfvfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
|
|||
movlt r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__gedf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
|
|||
movlt r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__gesf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
|
|||
movle r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__gtdf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
|
|||
movle r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__gtsf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
|
|||
movhi r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__ledf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
|
|||
movhi r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__lesf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
|
|||
movpl r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__ltdf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
|
|||
movpl r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__ltsf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -61,3 +61,6 @@ LOCAL_LABEL(divzero):
|
|||
CLEAR_FRAME_AND_RETURN
|
||||
#endif
|
||||
END_COMPILERRT_FUNCTION(__modsi3)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__muldf3vfp)
|
|||
vmov r0, r1, d6 // move result back to r0/r1 pair
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__muldf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp)
|
|||
vmov r0, s13 // move result back to r0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__mulsf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__nedf2vfp)
|
|||
moveq r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__nedf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -21,3 +21,6 @@ DEFINE_COMPILERRT_FUNCTION(__negdf2vfp)
|
|||
eor r1, r1, #-2147483648 // flip sign bit on double in r0/r1 pair
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__negdf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -21,3 +21,6 @@ DEFINE_COMPILERRT_FUNCTION(__negsf2vfp)
|
|||
eor r0, r0, #-2147483648 // flip sign bit on float in r0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__negsf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__nesf2vfp)
|
|||
moveq r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__nesf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -31,3 +31,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__restore_vfp_d8_d15_regs)
|
|||
bx lr // return to prolog
|
||||
END_COMPILERRT_FUNCTION(__restore_vfp_d8_d15_regs)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -31,3 +31,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__save_vfp_d8_d15_regs)
|
|||
bx lr // return to prolog
|
||||
END_COMPILERRT_FUNCTION(__save_vfp_d8_d15_regs)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__subdf3vfp)
|
|||
vmov r0, r1, d6 // move result back to r0/r1 pair
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__subdf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -25,3 +25,6 @@ DEFINE_COMPILERRT_FUNCTION(__subsf3vfp)
|
|||
vmov r0, s14 // move result back to r0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__subsf3vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -42,3 +42,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch16)
|
|||
bx ip // jump to computed label
|
||||
END_COMPILERRT_FUNCTION(__switch16)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -42,3 +42,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch32)
|
|||
bx ip // jump to computed label
|
||||
END_COMPILERRT_FUNCTION(__switch32)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -40,3 +40,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch8)
|
|||
bx ip // jump to computed label
|
||||
END_COMPILERRT_FUNCTION(__switch8)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -40,3 +40,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switchu8)
|
|||
bx ip // jump to computed label
|
||||
END_COMPILERRT_FUNCTION(__switchu8)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -19,3 +19,5 @@
|
|||
|
||||
SYNC_OP_4(add_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
SYNC_OP_8(add_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -17,3 +17,6 @@
|
|||
#define and_4(rD, rN, rM) and rD, rN, rM
|
||||
|
||||
SYNC_OP_4(and_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -21,3 +21,6 @@
|
|||
|
||||
SYNC_OP_8(and_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(max_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -19,3 +19,6 @@
|
|||
|
||||
SYNC_OP_8(max_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(min_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -19,3 +19,6 @@
|
|||
|
||||
SYNC_OP_8(min_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(nand_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
SYNC_OP_8(nand_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(or_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
SYNC_OP_8(or_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -19,3 +19,5 @@
|
|||
|
||||
SYNC_OP_4(sub_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
SYNC_OP_8(sub_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(umax_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -19,3 +19,6 @@
|
|||
|
||||
SYNC_OP_8(umax_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(umin_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -19,3 +19,6 @@
|
|||
|
||||
SYNC_OP_8(umin_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -18,3 +18,5 @@
|
|||
|
||||
SYNC_OP_4(xor_4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
SYNC_OP_8(xor_8)
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -33,3 +33,6 @@ END_COMPILERRT_FUNCTION(__sync_synchronize)
|
|||
.subsections_via_symbols
|
||||
|
||||
#endif
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__truncdfsf2vfp)
|
|||
vmov r0, s15 // return result in r0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__truncdfsf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -182,3 +182,6 @@ LOCAL_LABEL(divby0):
|
|||
#endif
|
||||
|
||||
END_COMPILERRT_FUNCTION(__udivmodsi4)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -168,3 +168,6 @@ LOCAL_LABEL(divby0):
|
|||
#endif
|
||||
|
||||
END_COMPILERRT_FUNCTION(__udivsi3)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -159,3 +159,6 @@ LOCAL_LABEL(divby0):
|
|||
#endif
|
||||
|
||||
END_COMPILERRT_FUNCTION(__umodsi3)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp)
|
|||
movvc r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__unorddf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp)
|
|||
movvc r0, #0
|
||||
bx lr
|
||||
END_COMPILERRT_FUNCTION(__unordsf2vfp)
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
#define SYMBOL_IS_FUNC(name)
|
||||
#define CONST_SECTION .const
|
||||
|
||||
#define NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
#elif defined(__ELF__)
|
||||
|
||||
#define HIDDEN(name) .hidden name
|
||||
|
@ -42,6 +44,12 @@
|
|||
#endif
|
||||
#define CONST_SECTION .section .rodata
|
||||
|
||||
#if defined(__GNU__) || defined(__ANDROID__) || defined(__FreeBSD__)
|
||||
#define NO_EXEC_STACK_DIRECTIVE .section .note.GNU-stack,"",%progbits
|
||||
#else
|
||||
#define NO_EXEC_STACK_DIRECTIVE
|
||||
#endif
|
||||
|
||||
#else // !__APPLE__ && !__ELF__
|
||||
|
||||
#define HIDDEN(name)
|
||||
|
@ -54,6 +62,8 @@
|
|||
.endef
|
||||
#define CONST_SECTION .section .rdata,"rd"
|
||||
|
||||
#define NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__arm__)
|
||||
|
|
|
@ -56,3 +56,6 @@ END_COMPILERRT_FUNCTION(__ashldi3)
|
|||
|
||||
#endif // __SSE2__
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -67,3 +67,6 @@ END_COMPILERRT_FUNCTION(__ashrdi3)
|
|||
|
||||
#endif // __SSE2__
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -160,3 +160,6 @@ DEFINE_COMPILERRT_FUNCTION(__divdi3)
|
|||
END_COMPILERRT_FUNCTION(__divdi3)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -37,3 +37,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatdidf)
|
|||
END_COMPILERRT_FUNCTION(__floatdidf)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -30,3 +30,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatdisf)
|
|||
END_COMPILERRT_FUNCTION(__floatdisf)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -28,3 +28,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatdixf)
|
|||
END_COMPILERRT_FUNCTION(__floatdixf)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -50,3 +50,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatundidf)
|
|||
END_COMPILERRT_FUNCTION(__floatundidf)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -103,3 +103,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatundisf)
|
|||
END_COMPILERRT_FUNCTION(__floatundisf)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -41,3 +41,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatundixf)
|
|||
END_COMPILERRT_FUNCTION(__floatundixf)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -57,3 +57,6 @@ END_COMPILERRT_FUNCTION(__lshrdi3)
|
|||
|
||||
#endif // __SSE2__
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -164,3 +164,6 @@ DEFINE_COMPILERRT_FUNCTION(__moddi3)
|
|||
END_COMPILERRT_FUNCTION(__moddi3)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -28,3 +28,6 @@ DEFINE_COMPILERRT_FUNCTION(__muldi3)
|
|||
END_COMPILERRT_FUNCTION(__muldi3)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -113,3 +113,6 @@ DEFINE_COMPILERRT_FUNCTION(__udivdi3)
|
|||
END_COMPILERRT_FUNCTION(__udivdi3)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -124,3 +124,6 @@ DEFINE_COMPILERRT_FUNCTION(__umoddi3)
|
|||
END_COMPILERRT_FUNCTION(__umoddi3)
|
||||
|
||||
#endif // __i386__
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
|
@ -41,3 +41,6 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(restFP)
|
|||
lwz r0,8(r1)
|
||||
mtlr r0
|
||||
blr
|
||||
|
||||
NO_EXEC_STACK_DIRECTIVE
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue