CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm
Module Name:src Committed By: skrll Date: Wed Jun 30 21:18:00 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm: aeabi_cfcmp.S divmodsi4.S divsi3.S modsi3.S Log Message: Do previous differently by pushing even number of registers and remove strange r7 usage. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S:1.2 Tue Jun 29 23:26:00 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S Wed Jun 30 21:18:00 2021 @@ -27,12 +27,11 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmpeq) -push {r0-r3, lr} -sub sp, #4 +// Save ip to ensure stack alignment (could be any register) +push {r0-r3, ip, lr} bl __aeabi_cfcmpeq_check_nan cmp r0, #1 -add sp, #4 -pop {r0-r3, lr} +pop {r0-r3, ip, lr} // NaN has been ruled out, so __aeabi_cfcmple can't trap bne __aeabi_cfcmple @@ -57,17 +56,15 @@ END_COMPILERRT_FUNCTION(__aeabi_cfcmpeq) DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmple) // Per the RTABI, this function must preserve r0-r11. // Save lr in the same instruction for compactness -push {r0-r3, lr} -sub sp, #4 +// Save ip to ensure stack alignment (could be any register) +push {r0-r3, ip, lr} bl __aeabi_fcmplt cmp r0, #1 moveq ip, #0 beq 1f -add sp, #4 ldm sp, {r0-r3} -sub sp, #4 bl __aeabi_fcmpeq cmp r0, #1 moveq ip, #(APSR_C | APSR_Z) @@ -75,8 +72,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp 1: msr CPSR_f, ip -add sp, #4 -pop {r0-r3} +pop {r0-r3, ip} POP_PC() END_COMPILERRT_FUNCTION(__aeabi_cfcmple) Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S:1.2 Tue Jun 29 23:26:00 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S Wed Jun 30 21:18:00 2021 @@ -16,12 +16,9 @@ #include "../assembly.h" #define ESTABLISH_FRAME\ -push {r4-r7, lr} ;\ -add r7, sp, #12 ;\ -sub sp, #4 +push {r4-r6, lr} #define CLEAR_FRAME_AND_RETURN \ -add sp, #4 ;\ -pop{r4-r7, pc} +pop{r4-r6, pc} .syntax unified .text Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S:1.2 Tue Jun 29 23:26:00 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S Wed Jun 30 21:18:00 2021 @@ -15,12 +15,9 @@ #include "../assembly.h" #define ESTABLISH_FRAME \ -push {r4, r7, lr};\ -add r7, sp, #4 ;\ -sub sp, #4 +push {r4, lr} #define CLEAR_FRAME_AND_RETURN \ -add sp, #4 ;\ -pop{r4, r7, pc} +pop{r4, pc} .syntax unified .text Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S:1.2 Tue Jun 29 23:26:00 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S Wed Jun 30 21:18:00 2021 @@ -15,12 +15,9 @@ #include "../assembly.h" #define ESTABLISH_FRAME \ -push {r4, r7, lr};\ -add r7, sp, #4 ;\ -sub sp, #4 +push {r4, lr} #define CLEAR_FRAME_AND_RETURN \ -add sp, #4 ;\ -pop{r4, r7, pc} +pop{r4, pc} .syntax unified .text
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm
Module Name:src Committed By: rin Date: Tue Jun 29 23:26:00 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm: aeabi_cfcmp.S divmodsi4.S divsi3.S modsi3.S Log Message: Align sp to 8-byte boundary as required by EABI. This is especially important for non-leaf functions; GCC optimizes codes based on assumption that sp is aligned properly. Mostly fix broken earmv5 userland compiled by GCC10 due to alignment faults in ld.elf_so, where {ld,st}rd are used for [sp, #8x]. No regression for ATF is observed for earmv[67]{,hf}{,eb}. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S cvs rdiff -u -r1.1.1.4 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S:1.1.1.1 Sat Feb 27 18:59:31 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S Tue Jun 29 23:26:00 2021 @@ -28,8 +28,10 @@ .p2align 2 DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmpeq) push {r0-r3, lr} +sub sp, #4 bl __aeabi_cfcmpeq_check_nan cmp r0, #1 +add sp, #4 pop {r0-r3, lr} // NaN has been ruled out, so __aeabi_cfcmple can't trap @@ -56,13 +58,16 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp // Per the RTABI, this function must preserve r0-r11. // Save lr in the same instruction for compactness push {r0-r3, lr} +sub sp, #4 bl __aeabi_fcmplt cmp r0, #1 moveq ip, #0 beq 1f +add sp, #4 ldm sp, {r0-r3} +sub sp, #4 bl __aeabi_fcmpeq cmp r0, #1 moveq ip, #(APSR_C | APSR_Z) @@ -70,6 +75,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp 1: msr CPSR_f, ip +add sp, #4 pop {r0-r3} POP_PC() END_COMPILERRT_FUNCTION(__aeabi_cfcmple) Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S:1.1.1.4 Sat Feb 27 18:59:31 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S Tue Jun 29 23:26:00 2021 @@ -17,8 +17,10 @@ #define ESTABLISH_FRAME\ push {r4-r7, lr} ;\ -add r7, sp, #12 +add r7, sp, #12 ;\ +sub sp, #4 #define CLEAR_FRAME_AND_RETURN \ +add sp, #4 ;\ pop{r4-r7, pc} .syntax unified Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S:1.1.1.4 Sat Feb 27 18:59:31 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S Tue Jun 29 23:26:00 2021 @@ -16,8 +16,10 @@ #define ESTABLISH_FRAME \ push {r4, r7, lr};\ -add r7, sp, #4 +add r7, sp, #4 ;\ +sub sp, #4 #define CLEAR_FRAME_AND_RETURN \ +add sp, #4 ;\ pop{r4, r7, pc} .syntax unified Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S:1.1.1.4 Sat Feb 27 18:59:31 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S Tue Jun 29 23:26:00 2021 @@ -16,8 +16,10 @@ #define ESTABLISH_FRAME \ push {r4, r7, lr};\ -add r7, sp, #4 +add r7, sp, #4 ;\ +sub sp, #4 #define CLEAR_FRAME_AND_RETURN \ +add sp, #4 ;\ pop{r4, r7, pc} .syntax unified
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: rin Date: Wed Jun 16 05:07:49 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: adddf3.c addsf3.c ashldi3.c ashrdi3.c comparedf2.c comparesf2.c divdf3.c divsf3.c divsi3.c extendhfsf2.c extendsfdf2.c fixdfdi.c fixdfsi.c fixsfdi.c fixsfsi.c fixunsdfdi.c fixunsdfsi.c fixunssfdi.c fixunssfsi.c floatdidf.c floatdisf.c floatsidf.c floatsisf.c floatundidf.c floatundisf.c floatunsidf.c floatunsisf.c int_lib.h lshrdi3.c muldf3.c muldi3.c mulsf3.c negdf2.c negsf2.c subdf3.c subsf3.c truncdfhf2.c truncdfsf2.c truncsfhf2.c udivsi3.c Log Message: PR port-arm/55897 Cherry-pick upstream commit llvm-svn: 314851: https://github.com/llvm/llvm-project/commit/0d586d06a756b126a7eb43a21ecc12bd243d7cd8#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007 [PATCH] [compiler-rt] Add back ARM EABI aliases where legal. r303188 removed all the uses of aliases for EABI functions from compiler-rt, because some of them had mismatched calling conventions. Obviously, we can't use aliases for functions which don't have the same calling convention, but that's only an issue for floating-point functions with the hardfloat ABI. In other cases, the stubs increase size and reduce performance for no benefit. This patch adds back the aliases, with appropriate checks to make sure they're only used in cases where the calling convention matches. llvm-svn: 314851 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c:1.2 Wed Jun 16 05:06:45 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c Wed Jun 16 05:07:49 2021 @@ -20,8 +20,11 @@ COMPILER_RT_ABI double __adddf3(double a } #if defined(__ARM_EA
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: rin Date: Wed Jun 16 05:07:18 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: floatdidf.c Log Message: PR port-arm/55897 Cherry-pick upstream commit llvm-svn: 303207: https://github.com/llvm/llvm-project/commit/4a45838d10085defac0f3b3003a5263e34536f3b#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007 [PATCH] builtins: fix guard __AEABI__ -> __ARM_EABI__ llvm-svn: 303207 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.4 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.3 Wed Jun 16 05:06:45 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c Wed Jun 16 05:07:18 2021 @@ -104,7 +104,7 @@ __floatdidf(di_int a) } #endif -#if defined(__AEABI__) +#if defined(__ARM_EABI__) AEABI_RTABI double __aeabi_l2d(di_int a) { return __floatdidf(a); }
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: rin Date: Wed Jun 16 05:06:46 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: adddf3.c addsf3.c ashldi3.c ashrdi3.c comparedf2.c comparesf2.c divdf3.c divsf3.c divsi3.c extendhfsf2.c extendsfdf2.c fixdfdi.c fixdfsi.c fixsfdi.c fixsfsi.c fixunsdfdi.c fixunsdfsi.c fixunssfdi.c fixunssfsi.c floatdidf.c floatdisf.c floatsidf.c floatsisf.c floatundidf.c floatundisf.c floatunsidf.c floatunsisf.c int_lib.h lshrdi3.c muldf3.c muldi3.c mulsf3.c negdf2.c negsf2.c subdf3.c subsf3.c truncdfhf2.c truncdfsf2.c truncsfhf2.c udivsi3.c src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm: aeabi_cdcmpeq_check_nan.c aeabi_cfcmpeq_check_nan.c aeabi_div0.c aeabi_drsub.c aeabi_frsub.c Log Message: PR port-arm/55897 Cherry-pick upstream commit llvm-svn: 303188: https://github.com/llvm/llvm-project/commit/36ac5ddff7377586390a71cb3261f0a40d274308#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007 [PATCH] builtins: expand out the AEABI function stubs These actually may change calling conventions. We cannot simply provide function aliases as the aliased function may have a different calling convention. Provide a forwarding function instead to permit the compiler to synthesize the calling convention adjustment thunk. Remove the `ARM_EABI_FNALIAS` macro as that is not safe to use. Resolves PR33030! llvm-svn: 303188 To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c cvs rdiff -u -r1.1.1.4 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c cvs rdiff -u -r1.1.1.2 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c Please note that diffs are not public domain; they are subject to the copyright notices on the
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: rin Date: Wed Jun 16 05:06:21 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: int_lib.h Log Message: PR port-arm/55897 Cherry-pick upstream commit llvm-svn: 303138: https://github.com/llvm/llvm-project/commit/44c45717b9e9f3dc194508d2eeeb8599a9d76949#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007 [PATCH] builtins: use reserved spelling (NFC) llvm-svn: 303138 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.4 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.3 Wed Jun 16 05:05:49 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Wed Jun 16 05:06:21 2021 @@ -35,7 +35,7 @@ # ifdef COMPILER_RT_ARMHF_TARGET # define COMPILER_RT_ABI # else -# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# define COMPILER_RT_ABI __attribute__((__pcs__("aapcs"))) # endif #else # define ARM_EABI_FNALIAS(aeabi_name, name)
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: rin Date: Wed Jun 16 05:05:49 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: int_lib.h Log Message: PR port-arm/55897 Cherry-pick upstream commit llvm-svn: 298974 for lib/builtins/int_lib.h. https://github.com/llvm/llvm-project/commit/d8ca74176e25bd4080ee81982819e2ef7a36553f#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007 [Builtin] Unxfail tests for armhf Summary: Originally, a few tests fail for armhf target due to: 1) COMPILER_RT_ARMHF_TARGET was not set when building the lib 2) COMPILER_RT_ABI should not be defined as `__attribute__((pcs("aapcs")))` for armhf when building for both lib and tests This address https://bugs.llvm.org//show_bug.cgi?id=32261 mulsc3_test.c is a newly exposed issue, which will be addressed separately. Reviewers: rengolin, compnerd Reviewed By: compnerd Subscribers: aemerson, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D31448 llvm-svn: 298974 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.2 Wed Jun 16 05:05:03 2021 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Wed Jun 16 05:05:49 2021 @@ -32,7 +32,11 @@ #if __ARM_EABI__ # define ARM_EABI_FNALIAS(aeabi_name, name) \ void __aeabi_##aeabi_name() __attribute__((alias("__" #name))); -# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# ifdef COMPILER_RT_ARMHF_TARGET +# define COMPILER_RT_ABI +# else +# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# endif #else # define ARM_EABI_FNALIAS(aeabi_name, name) # define COMPILER_RT_ABI
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: rin Date: Wed Jun 16 05:05:03 UTC 2021 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: int_lib.h Log Message: PR port-arm/55897 Cherry-pick upstream commit llvm-svn: 266891: https://github.com/llvm/llvm-project/commit/28e1b977d4694c6b3a5c4d8107570a969be71e77#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007 [PATCH] builtins: remove use of __attribute__((pcs("aapcs"))) on Windows Windows does not honour the __attribute__((pcs)) on ARM. Although this will result in ABI mismatches, compiler-rt should largely be unneeded for resolving dependencies as we generate MS ABI compliant library calls now for the most part. llvm-svn: 266891 To generate a diff of this commit: cvs rdiff -u -r1.1.1.4 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.1.1.4 Sat Feb 27 18:59:30 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h Wed Jun 16 05:05:03 2021 @@ -35,11 +35,7 @@ # define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) #else # define ARM_EABI_FNALIAS(aeabi_name, name) -# if defined(__arm__) && defined(_WIN32) && (!defined(_MSC_VER) || defined(__clang__)) -# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) -# else -# define COMPILER_RT_ABI -# endif +# define COMPILER_RT_ABI #endif #ifdef _MSC_VER
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: jmcneill Date: Tue May 5 12:47:16 UTC 2020 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: clear_cache.c Log Message: Align addresses to cache lines in __clear_cache for aarch64. This corrects an issue where if the start and end address fall in different lines, and the end address is not cache line size aligned, the last line will not be invalidated properly. Patch from compiler-rt upstream: https://reviews.llvm.org/rCRT323315 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c:1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c:1.4 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c:1.3 Fri Jun 16 21:22:14 2017 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c Tue May 5 12:47:16 2020 @@ -143,12 +143,14 @@ void __clear_cache(void *start, void *en * uintptr_t in case this runs in an IPL32 environment. */ const size_t dcache_line_size = 4 << ((ctr_el0 >> 16) & 15); - for (addr = xstart; addr < xend; addr += dcache_line_size) + for (addr = xstart & ~(dcache_line_size - 1); addr < xend; + addr += dcache_line_size) __asm __volatile("dc cvau, %0" :: "r"(addr)); __asm __volatile("dsb ish"); const size_t icache_line_size = 4 << ((ctr_el0 >> 0) & 15); - for (addr = xstart; addr < xend; addr += icache_line_size) + for (addr = xstart & ~(icache_line_size - 1); addr < xend; + addr += icache_line_size) __asm __volatile("ic ivau, %0" :: "r"(addr)); __asm __volatile("isb sy"); #elif defined(__sparc__)
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: martin Date: Sat Mar 26 07:21:11 UTC 2016 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: floatdidf.c floatundidf.c Log Message: Make the softfloat variant compile To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c cvs rdiff -u -r1.1.1.3 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.1.1.2 Sat Feb 27 18:59:29 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c Sat Mar 26 07:21:11 2016 @@ -98,10 +98,10 @@ __floatdidf(di_int a) /* a is now rounded to DBL_MANT_DIG bits */ } double_bits fb; -fb.u.high = ((su_int)s & 0x8000) |/* sign */ +fb.u.s.high = ((su_int)s & 0x8000) |/* sign */ ((e + 1023) << 20) |/* exponent */ ((su_int)(a >> 32) & 0x000F); /* mantissa-high */ -fb.u.low = (su_int)a; /* mantissa-low */ +fb.u.s.low = (su_int)a; /* mantissa-low */ return fb.f; } #endif Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c:1.1.1.3 Sat Feb 27 18:59:29 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c Sat Mar 26 07:21:11 2016 @@ -98,9 +98,9 @@ __floatundidf(du_int a) /* a is now rounded to DBL_MANT_DIG bits */ } double_bits fb; -fb.u.high = ((e + 1023) << 20) |/* exponent */ +fb.u.s.high = ((e + 1023) << 20) |/* exponent */ ((su_int)(a >> 32) & 0x000F); /* mantissa-high */ -fb.u.low = (su_int)a; /* mantissa-low */ +fb.u.s.low = (su_int)a; /* mantissa-low */ return fb.f; } #endif
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: riastradh Date: Fri Mar 25 03:51:19 UTC 2016 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: int_types.h Log Message: No CRT_HAS_128BIT for pcc, which lacks attribute((mode(TI))). To generate a diff of this commit: cvs rdiff -u -r1.1.1.4 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h:1.1.1.4 Sat Feb 27 18:59:30 2016 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_types.h Fri Mar 25 03:51:19 2016 @@ -62,7 +62,8 @@ typedef union /* MIPS64 issue: PR 20098 */ #if (defined(__LP64__) || defined(__wasm__)) && \ -!(defined(__mips__) && defined(__clang__)) +!(defined(__mips__) && defined(__clang__)) && \ +!defined(__PCC__) #define CRT_HAS_128BIT #endif
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: christos Date: Fri Mar 4 17:49:07 UTC 2016 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: clzdi2.c ctzdi2.c Log Message: Fix infinite recursion caused by gcc lossage. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c:1.1.1.1 Wed Feb 26 17:31:29 2014 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clzdi2.c Fri Mar 4 12:49:06 2016 @@ -16,6 +16,12 @@ /* Returns: the number of leading 0-bits */ +#if !defined(__clang__) && (defined(__sparc64__) || defined(__mips64)) +/* gcc resolves __builtin_clz -> __clzdi2 leading to infinite recursion */ +#define __builtin_clz(a) __clzsi2(a) +extern si_int __clzsi2(si_int); +#endif + /* Precondition: a != 0 */ COMPILER_RT_ABI si_int Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c:1.1.1.1 Wed Feb 26 17:31:29 2014 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ctzdi2.c Fri Mar 4 12:49:06 2016 @@ -16,6 +16,12 @@ /* Returns: the number of trailing 0-bits */ +#if !defined(__clang__) && (defined(__sparc64__) || defined(__mips64)) +/* gcc resolves __builtin_ctz -> __ctzdi2 leading to infinite recursion */ +#define __builtin_ctz(a) __ctzsi2(a) +extern si_int __ctzsi2(si_int); +#endif + /* Precondition: a != 0 */ COMPILER_RT_ABI si_int
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: joerg Date: Sat Feb 27 19:05:27 UTC 2016 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: gcc_personality_v0.c Log Message: Merge compiler-rt-259194. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c:1.2 Mon Mar 9 17:28:11 2015 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c Sat Feb 27 19:05:27 2016 @@ -11,47 +11,7 @@ #include "int_lib.h" -/* - * _Unwind_* stuff based on C++ ABI public documentation - * http://refspecs.freestandards.org/abi-eh-1.21.html - */ - -typedef enum { -_URC_NO_REASON = 0, -_URC_FOREIGN_EXCEPTION_CAUGHT = 1, -_URC_FATAL_PHASE2_ERROR = 2, -_URC_FATAL_PHASE1_ERROR = 3, -_URC_NORMAL_STOP = 4, -_URC_END_OF_STACK = 5, -_URC_HANDLER_FOUND = 6, -_URC_INSTALL_CONTEXT = 7, -_URC_CONTINUE_UNWIND = 8 -} _Unwind_Reason_Code; - -typedef enum { -_UA_SEARCH_PHASE = 1, -_UA_CLEANUP_PHASE = 2, -_UA_HANDLER_FRAME = 4, -_UA_FORCE_UNWIND = 8, -_UA_END_OF_STACK = 16 -} _Unwind_Action; - -typedef struct _Unwind_Context* _Unwind_Context_t; - -struct _Unwind_Exception { -uint64_texception_class; -void(*exception_cleanup)(_Unwind_Reason_Code reason, - struct _Unwind_Exception* exc); -uintptr_tprivate_1; -uintptr_tprivate_2; -}; - -COMPILER_RT_ABI const uint8_t*_Unwind_GetLanguageSpecificData(_Unwind_Context_t c); -COMPILER_RT_ABI void _Unwind_SetGR(_Unwind_Context_t c, int i, uintptr_t n); -COMPILER_RT_ABI void _Unwind_SetIP(_Unwind_Context_t, uintptr_t new_value); -COMPILER_RT_ABI uintptr_t _Unwind_GetIP(_Unwind_Context_t context); -COMPILER_RT_ABI uintptr_t _Unwind_GetRegionStart(_Unwind_Context_t context); - +#include /* * Pointer encodings documented at: @@ -181,16 +141,17 @@ static uintptr_t readEncodedPointer(cons * throw through a C function compiled with -fexceptions. */ #if __USING_SJLJ_EXCEPTIONS__ -// the setjump-longjump based exceptions personality routine has a different name +/* the setjump-longjump based exceptions personality routine has a + * different name */ COMPILER_RT_ABI _Unwind_Reason_Code __gcc_personality_sj0(int version, _Unwind_Action actions, uint64_t exceptionClass, struct _Unwind_Exception* exceptionObject, - _Unwind_Context_t context) + struct _Unwind_Context *context) #else COMPILER_RT_ABI _Unwind_Reason_Code __gcc_personality_v0(int version, _Unwind_Action actions, uint64_t exceptionClass, struct _Unwind_Exception* exceptionObject, - _Unwind_Context_t context) + struct _Unwind_Context *context) #endif { /* Since C does not have catch clauses, there is nothing to do during */ @@ -199,7 +160,7 @@ __gcc_personality_v0(int version, _Unwin return _URC_CONTINUE_UNWIND; /* There is nothing to do if there is no LSDA for this frame. */ -const uint8_t* lsda = _Unwind_GetLanguageSpecificData(context); +const uint8_t* lsda = (uint8_t*)_Unwind_GetLanguageSpecificData(context); if ( lsda == (uint8_t*) 0 ) return _URC_CONTINUE_UNWIND; @@ -234,15 +195,15 @@ __gcc_personality_v0(int version, _Unwin * Set Instruction Pointer to so we re-enter function * at landing pad. The landing pad is created by the compiler * to take two parameters in registers. - */ -_Unwind_SetGR(context, __builtin_eh_return_data_regno(0), -(uintptr_t)exceptionObject); + */ +_Unwind_SetGR(context, __builtin_eh_return_data_regno(0), + (uintptr_t)exceptionObject); _Unwind_SetGR(context, __builtin_eh_return_data_regno(1), 0); -_Unwind_SetIP(context, funcStart+landingPad); +_Unwind_SetIP(context, (funcStart + landingPad)); return _URC_INSTALL_CONTEXT; } } - + /* No landing pad found, continue unwinding. */ return _URC_CONTINUE_UNWIND; }
CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins
Module Name:src Committed By: joerg Date: Mon Mar 9 17:28:11 UTC 2015 Modified Files: src/sys/external/bsd/compiler_rt/dist/lib/builtins: gcc_personality_v0.c Log Message: Don't use __gcc_personality_sj0 on ARM. To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c:1.2 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c:1.1.1.2 Tue Mar 18 22:28:43 2014 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/gcc_personality_v0.c Mon Mar 9 17:28:11 2015 @@ -180,7 +180,7 @@ static uintptr_t readEncodedPointer(cons * on each frame as the stack is unwound during a C++ exception * throw through a C function compiled with -fexceptions. */ -#if __arm__ +#if __USING_SJLJ_EXCEPTIONS__ // the setjump-longjump based exceptions personality routine has a different name COMPILER_RT_ABI _Unwind_Reason_Code __gcc_personality_sj0(int version, _Unwind_Action actions,