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
|
vmov r0, r1, d6 // move result back to r0/r1 pair
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__adddf3vfp)
|
END_COMPILERRT_FUNCTION(__adddf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__addsf3vfp)
|
||||||
vmov r0, s14 // move result back to r0
|
vmov r0, s14 // move result back to r0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__addsf3vfp)
|
END_COMPILERRT_FUNCTION(__addsf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -94,3 +94,5 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
|
||||||
b __aeabi_cdcmple
|
b __aeabi_cdcmple
|
||||||
END_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
|
END_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -89,3 +89,5 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
|
||||||
b __aeabi_cfcmple
|
b __aeabi_cfcmple
|
||||||
END_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
|
END_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -38,3 +38,6 @@ DEFINE_AEABI_DCMP(lt)
|
||||||
DEFINE_AEABI_DCMP(le)
|
DEFINE_AEABI_DCMP(le)
|
||||||
DEFINE_AEABI_DCMP(ge)
|
DEFINE_AEABI_DCMP(ge)
|
||||||
DEFINE_AEABI_DCMP(gt)
|
DEFINE_AEABI_DCMP(gt)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -38,3 +38,6 @@ DEFINE_AEABI_FCMP(lt)
|
||||||
DEFINE_AEABI_FCMP(le)
|
DEFINE_AEABI_FCMP(le)
|
||||||
DEFINE_AEABI_FCMP(ge)
|
DEFINE_AEABI_FCMP(ge)
|
||||||
DEFINE_AEABI_FCMP(gt)
|
DEFINE_AEABI_FCMP(gt)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -26,3 +26,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_idivmod)
|
||||||
add sp, sp, #4
|
add sp, sp, #4
|
||||||
pop { pc }
|
pop { pc }
|
||||||
END_COMPILERRT_FUNCTION(__aeabi_idivmod)
|
END_COMPILERRT_FUNCTION(__aeabi_idivmod)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -29,3 +29,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_ldivmod)
|
||||||
add sp, sp, #16
|
add sp, sp, #16
|
||||||
pop {r11, pc}
|
pop {r11, pc}
|
||||||
END_COMPILERRT_FUNCTION(__aeabi_ldivmod)
|
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_memcmp4, __aeabi_memcmp)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __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_memcpy4, __aeabi_memcpy)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy8, __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_memmove4, __aeabi_memmove)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __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_memclr4, __aeabi_memclr)
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr8, __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
|
add sp, sp, #4
|
||||||
pop { pc }
|
pop { pc }
|
||||||
END_COMPILERRT_FUNCTION(__aeabi_uidivmod)
|
END_COMPILERRT_FUNCTION(__aeabi_uidivmod)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -29,3 +29,6 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_uldivmod)
|
||||||
add sp, sp, #16
|
add sp, sp, #16
|
||||||
pop {r11, pc}
|
pop {r11, pc}
|
||||||
END_COMPILERRT_FUNCTION(__aeabi_uldivmod)
|
END_COMPILERRT_FUNCTION(__aeabi_uldivmod)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -45,3 +45,6 @@ DEFINE_COMPILERRT_FUNCTION(__bswapdi2)
|
||||||
mov r1, r2 // r1 = r2 = rev(r0)
|
mov r1, r2 // r1 = r2 = rev(r0)
|
||||||
JMP(lr)
|
JMP(lr)
|
||||||
END_COMPILERRT_FUNCTION(__bswapdi2)
|
END_COMPILERRT_FUNCTION(__bswapdi2)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -37,3 +37,6 @@ DEFINE_COMPILERRT_FUNCTION(__bswapsi2)
|
||||||
#endif
|
#endif
|
||||||
JMP(lr)
|
JMP(lr)
|
||||||
END_COMPILERRT_FUNCTION(__bswapsi2)
|
END_COMPILERRT_FUNCTION(__bswapsi2)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -95,3 +95,6 @@ DEFINE_COMPILERRT_FUNCTION(__clzdi2)
|
||||||
JMP(lr)
|
JMP(lr)
|
||||||
#endif // __ARM_FEATURE_CLZ
|
#endif // __ARM_FEATURE_CLZ
|
||||||
END_COMPILERRT_FUNCTION(__clzdi2)
|
END_COMPILERRT_FUNCTION(__clzdi2)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -74,3 +74,6 @@ DEFINE_COMPILERRT_FUNCTION(__clzsi2)
|
||||||
JMP(lr)
|
JMP(lr)
|
||||||
#endif // __ARM_FEATURE_CLZ
|
#endif // __ARM_FEATURE_CLZ
|
||||||
END_COMPILERRT_FUNCTION(__clzsi2)
|
END_COMPILERRT_FUNCTION(__clzsi2)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -146,3 +146,6 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2)
|
||||||
END_COMPILERRT_FUNCTION(__unordsf2)
|
END_COMPILERRT_FUNCTION(__unordsf2)
|
||||||
|
|
||||||
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_fcmpun, __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
|
vmov r0, r1, d5 // move result back to r0/r1 pair
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__divdf3vfp)
|
END_COMPILERRT_FUNCTION(__divdf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -72,3 +72,6 @@ LOCAL_LABEL(divzero):
|
||||||
CLEAR_FRAME_AND_RETURN
|
CLEAR_FRAME_AND_RETURN
|
||||||
#endif
|
#endif
|
||||||
END_COMPILERRT_FUNCTION(__divmodsi4)
|
END_COMPILERRT_FUNCTION(__divmodsi4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__divsf3vfp)
|
||||||
vmov r0, s13 // move result back to r0
|
vmov r0, s13 // move result back to r0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__divsf3vfp)
|
END_COMPILERRT_FUNCTION(__divsf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -63,3 +63,6 @@ ESTABLISH_FRAME
|
||||||
CLEAR_FRAME_AND_RETURN
|
CLEAR_FRAME_AND_RETURN
|
||||||
#endif
|
#endif
|
||||||
END_COMPILERRT_FUNCTION(__divsi3)
|
END_COMPILERRT_FUNCTION(__divsi3)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
|
||||||
movne r0, #0
|
movne r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__eqdf2vfp)
|
END_COMPILERRT_FUNCTION(__eqdf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
|
||||||
movne r0, #0
|
movne r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__eqsf2vfp)
|
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
|
vmov r0, r1, d7 // return result in r0/r1 pair
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__extendsfdf2vfp)
|
END_COMPILERRT_FUNCTION(__extendsfdf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp)
|
||||||
vmov r0, s15 // move s15 to result register
|
vmov r0, s15 // move s15 to result register
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__fixdfsivfp)
|
END_COMPILERRT_FUNCTION(__fixdfsivfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp)
|
||||||
vmov r0, s15 // move s15 to result register
|
vmov r0, s15 // move s15 to result register
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__fixsfsivfp)
|
END_COMPILERRT_FUNCTION(__fixsfsivfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -25,3 +25,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp)
|
||||||
vmov r0, s15 // move s15 to result register
|
vmov r0, s15 // move s15 to result register
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__fixunsdfsivfp)
|
END_COMPILERRT_FUNCTION(__fixunsdfsivfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -25,3 +25,6 @@ DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp)
|
||||||
vmov r0, s15 // move s15 to result register
|
vmov r0, s15 // move s15 to result register
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__fixunssfsivfp)
|
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
|
vmov r0, r1, d7 // move d7 to result register pair r0/r1
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__floatsidfvfp)
|
END_COMPILERRT_FUNCTION(__floatsidfvfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp)
|
||||||
vmov r0, s15 // move s15 to result register
|
vmov r0, s15 // move s15 to result register
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__floatsisfvfp)
|
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
|
vmov r0, r1, d7 // move d7 to result register pair r0/r1
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__floatunssidfvfp)
|
END_COMPILERRT_FUNCTION(__floatunssidfvfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp)
|
||||||
vmov r0, s15 // move s15 to result register
|
vmov r0, s15 // move s15 to result register
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__floatunssisfvfp)
|
END_COMPILERRT_FUNCTION(__floatunssisfvfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
|
||||||
movlt r0, #0
|
movlt r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__gedf2vfp)
|
END_COMPILERRT_FUNCTION(__gedf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
|
||||||
movlt r0, #0
|
movlt r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__gesf2vfp)
|
END_COMPILERRT_FUNCTION(__gesf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
|
||||||
movle r0, #0
|
movle r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__gtdf2vfp)
|
END_COMPILERRT_FUNCTION(__gtdf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
|
||||||
movle r0, #0
|
movle r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__gtsf2vfp)
|
END_COMPILERRT_FUNCTION(__gtsf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
|
||||||
movhi r0, #0
|
movhi r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__ledf2vfp)
|
END_COMPILERRT_FUNCTION(__ledf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
|
||||||
movhi r0, #0
|
movhi r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__lesf2vfp)
|
END_COMPILERRT_FUNCTION(__lesf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
|
||||||
movpl r0, #0
|
movpl r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__ltdf2vfp)
|
END_COMPILERRT_FUNCTION(__ltdf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
|
||||||
movpl r0, #0
|
movpl r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__ltsf2vfp)
|
END_COMPILERRT_FUNCTION(__ltsf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -61,3 +61,6 @@ LOCAL_LABEL(divzero):
|
||||||
CLEAR_FRAME_AND_RETURN
|
CLEAR_FRAME_AND_RETURN
|
||||||
#endif
|
#endif
|
||||||
END_COMPILERRT_FUNCTION(__modsi3)
|
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
|
vmov r0, r1, d6 // move result back to r0/r1 pair
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__muldf3vfp)
|
END_COMPILERRT_FUNCTION(__muldf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp)
|
||||||
vmov r0, s13 // move result back to r0
|
vmov r0, s13 // move result back to r0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__mulsf3vfp)
|
END_COMPILERRT_FUNCTION(__mulsf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__nedf2vfp)
|
||||||
moveq r0, #0
|
moveq r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__nedf2vfp)
|
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
|
eor r1, r1, #-2147483648 // flip sign bit on double in r0/r1 pair
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__negdf2vfp)
|
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
|
eor r0, r0, #-2147483648 // flip sign bit on float in r0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__negsf2vfp)
|
END_COMPILERRT_FUNCTION(__negsf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__nesf2vfp)
|
||||||
moveq r0, #0
|
moveq r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__nesf2vfp)
|
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
|
bx lr // return to prolog
|
||||||
END_COMPILERRT_FUNCTION(__restore_vfp_d8_d15_regs)
|
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
|
bx lr // return to prolog
|
||||||
END_COMPILERRT_FUNCTION(__save_vfp_d8_d15_regs)
|
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
|
vmov r0, r1, d6 // move result back to r0/r1 pair
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__subdf3vfp)
|
END_COMPILERRT_FUNCTION(__subdf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -25,3 +25,6 @@ DEFINE_COMPILERRT_FUNCTION(__subsf3vfp)
|
||||||
vmov r0, s14 // move result back to r0
|
vmov r0, s14 // move result back to r0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__subsf3vfp)
|
END_COMPILERRT_FUNCTION(__subsf3vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -42,3 +42,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch16)
|
||||||
bx ip // jump to computed label
|
bx ip // jump to computed label
|
||||||
END_COMPILERRT_FUNCTION(__switch16)
|
END_COMPILERRT_FUNCTION(__switch16)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -42,3 +42,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch32)
|
||||||
bx ip // jump to computed label
|
bx ip // jump to computed label
|
||||||
END_COMPILERRT_FUNCTION(__switch32)
|
END_COMPILERRT_FUNCTION(__switch32)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -40,3 +40,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch8)
|
||||||
bx ip // jump to computed label
|
bx ip // jump to computed label
|
||||||
END_COMPILERRT_FUNCTION(__switch8)
|
END_COMPILERRT_FUNCTION(__switch8)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -40,3 +40,5 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switchu8)
|
||||||
bx ip // jump to computed label
|
bx ip // jump to computed label
|
||||||
END_COMPILERRT_FUNCTION(__switchu8)
|
END_COMPILERRT_FUNCTION(__switchu8)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(add_4)
|
SYNC_OP_4(add_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -22,3 +22,5 @@
|
||||||
SYNC_OP_8(add_8)
|
SYNC_OP_8(add_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -17,3 +17,6 @@
|
||||||
#define and_4(rD, rN, rM) and rD, rN, rM
|
#define and_4(rD, rN, rM) and rD, rN, rM
|
||||||
|
|
||||||
SYNC_OP_4(and_4)
|
SYNC_OP_4(and_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -21,3 +21,6 @@
|
||||||
|
|
||||||
SYNC_OP_8(and_8)
|
SYNC_OP_8(and_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(max_4)
|
SYNC_OP_4(max_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,6 @@
|
||||||
|
|
||||||
SYNC_OP_8(max_8)
|
SYNC_OP_8(max_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(min_4)
|
SYNC_OP_4(min_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,6 @@
|
||||||
|
|
||||||
SYNC_OP_8(min_8)
|
SYNC_OP_8(min_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(nand_4)
|
SYNC_OP_4(nand_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -22,3 +22,5 @@
|
||||||
SYNC_OP_8(nand_8)
|
SYNC_OP_8(nand_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(or_4)
|
SYNC_OP_4(or_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -22,3 +22,5 @@
|
||||||
SYNC_OP_8(or_8)
|
SYNC_OP_8(or_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(sub_4)
|
SYNC_OP_4(sub_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -22,3 +22,5 @@
|
||||||
SYNC_OP_8(sub_8)
|
SYNC_OP_8(sub_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(umax_4)
|
SYNC_OP_4(umax_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,6 @@
|
||||||
|
|
||||||
SYNC_OP_8(umax_8)
|
SYNC_OP_8(umax_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(umin_4)
|
SYNC_OP_4(umin_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,6 @@
|
||||||
|
|
||||||
SYNC_OP_8(umin_8)
|
SYNC_OP_8(umin_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -18,3 +18,5 @@
|
||||||
|
|
||||||
SYNC_OP_4(xor_4)
|
SYNC_OP_4(xor_4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -22,3 +22,5 @@
|
||||||
SYNC_OP_8(xor_8)
|
SYNC_OP_8(xor_8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -33,3 +33,6 @@ END_COMPILERRT_FUNCTION(__sync_synchronize)
|
||||||
.subsections_via_symbols
|
.subsections_via_symbols
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,6 @@ DEFINE_COMPILERRT_FUNCTION(__truncdfsf2vfp)
|
||||||
vmov r0, s15 // return result in r0
|
vmov r0, s15 // return result in r0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__truncdfsf2vfp)
|
END_COMPILERRT_FUNCTION(__truncdfsf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -182,3 +182,6 @@ LOCAL_LABEL(divby0):
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_COMPILERRT_FUNCTION(__udivmodsi4)
|
END_COMPILERRT_FUNCTION(__udivmodsi4)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -168,3 +168,6 @@ LOCAL_LABEL(divby0):
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_COMPILERRT_FUNCTION(__udivsi3)
|
END_COMPILERRT_FUNCTION(__udivsi3)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -159,3 +159,6 @@ LOCAL_LABEL(divby0):
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_COMPILERRT_FUNCTION(__umodsi3)
|
END_COMPILERRT_FUNCTION(__umodsi3)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp)
|
||||||
movvc r0, #0
|
movvc r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__unorddf2vfp)
|
END_COMPILERRT_FUNCTION(__unorddf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,6 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp)
|
||||||
movvc r0, #0
|
movvc r0, #0
|
||||||
bx lr
|
bx lr
|
||||||
END_COMPILERRT_FUNCTION(__unordsf2vfp)
|
END_COMPILERRT_FUNCTION(__unordsf2vfp)
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#define SYMBOL_IS_FUNC(name)
|
#define SYMBOL_IS_FUNC(name)
|
||||||
#define CONST_SECTION .const
|
#define CONST_SECTION .const
|
||||||
|
|
||||||
|
#define NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
#elif defined(__ELF__)
|
#elif defined(__ELF__)
|
||||||
|
|
||||||
#define HIDDEN(name) .hidden name
|
#define HIDDEN(name) .hidden name
|
||||||
|
@ -42,6 +44,12 @@
|
||||||
#endif
|
#endif
|
||||||
#define CONST_SECTION .section .rodata
|
#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__
|
#else // !__APPLE__ && !__ELF__
|
||||||
|
|
||||||
#define HIDDEN(name)
|
#define HIDDEN(name)
|
||||||
|
@ -54,6 +62,8 @@
|
||||||
.endef
|
.endef
|
||||||
#define CONST_SECTION .section .rdata,"rd"
|
#define CONST_SECTION .section .rdata,"rd"
|
||||||
|
|
||||||
|
#define NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__arm__)
|
#if defined(__arm__)
|
||||||
|
|
|
@ -56,3 +56,6 @@ END_COMPILERRT_FUNCTION(__ashldi3)
|
||||||
|
|
||||||
#endif // __SSE2__
|
#endif // __SSE2__
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -67,3 +67,6 @@ END_COMPILERRT_FUNCTION(__ashrdi3)
|
||||||
|
|
||||||
#endif // __SSE2__
|
#endif // __SSE2__
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -160,3 +160,6 @@ DEFINE_COMPILERRT_FUNCTION(__divdi3)
|
||||||
END_COMPILERRT_FUNCTION(__divdi3)
|
END_COMPILERRT_FUNCTION(__divdi3)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -37,3 +37,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatdidf)
|
||||||
END_COMPILERRT_FUNCTION(__floatdidf)
|
END_COMPILERRT_FUNCTION(__floatdidf)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -30,3 +30,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatdisf)
|
||||||
END_COMPILERRT_FUNCTION(__floatdisf)
|
END_COMPILERRT_FUNCTION(__floatdisf)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -28,3 +28,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatdixf)
|
||||||
END_COMPILERRT_FUNCTION(__floatdixf)
|
END_COMPILERRT_FUNCTION(__floatdixf)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -50,3 +50,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatundidf)
|
||||||
END_COMPILERRT_FUNCTION(__floatundidf)
|
END_COMPILERRT_FUNCTION(__floatundidf)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -103,3 +103,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatundisf)
|
||||||
END_COMPILERRT_FUNCTION(__floatundisf)
|
END_COMPILERRT_FUNCTION(__floatundisf)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -41,3 +41,6 @@ DEFINE_COMPILERRT_FUNCTION(__floatundixf)
|
||||||
END_COMPILERRT_FUNCTION(__floatundixf)
|
END_COMPILERRT_FUNCTION(__floatundixf)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -57,3 +57,6 @@ END_COMPILERRT_FUNCTION(__lshrdi3)
|
||||||
|
|
||||||
#endif // __SSE2__
|
#endif // __SSE2__
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -164,3 +164,6 @@ DEFINE_COMPILERRT_FUNCTION(__moddi3)
|
||||||
END_COMPILERRT_FUNCTION(__moddi3)
|
END_COMPILERRT_FUNCTION(__moddi3)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -28,3 +28,6 @@ DEFINE_COMPILERRT_FUNCTION(__muldi3)
|
||||||
END_COMPILERRT_FUNCTION(__muldi3)
|
END_COMPILERRT_FUNCTION(__muldi3)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -113,3 +113,6 @@ DEFINE_COMPILERRT_FUNCTION(__udivdi3)
|
||||||
END_COMPILERRT_FUNCTION(__udivdi3)
|
END_COMPILERRT_FUNCTION(__udivdi3)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -124,3 +124,6 @@ DEFINE_COMPILERRT_FUNCTION(__umoddi3)
|
||||||
END_COMPILERRT_FUNCTION(__umoddi3)
|
END_COMPILERRT_FUNCTION(__umoddi3)
|
||||||
|
|
||||||
#endif // __i386__
|
#endif // __i386__
|
||||||
|
|
||||||
|
NO_EXEC_STACK_DIRECTIVE
|
||||||
|
|
||||||
|
|
|
@ -41,3 +41,6 @@ DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(restFP)
|
||||||
lwz r0,8(r1)
|
lwz r0,8(r1)
|
||||||
mtlr r0
|
mtlr r0
|
||||||
blr
|
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