CVS commit: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm

2021-06-30 Thread Nick Hudson
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

2021-06-29 Thread Rin Okuyama
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

2021-06-15 Thread Rin Okuyama
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

2021-06-15 Thread Rin Okuyama
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

2021-06-15 Thread Rin Okuyama
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

2021-06-15 Thread Rin Okuyama
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

2021-06-15 Thread Rin Okuyama
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

2021-06-15 Thread Rin Okuyama
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

2020-05-05 Thread Jared D. McNeill
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

2016-03-26 Thread Martin Husemann
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

2016-03-24 Thread Taylor R Campbell
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

2016-03-04 Thread Christos Zoulas
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

2016-02-27 Thread Joerg Sonnenberger
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

2015-03-09 Thread Joerg Sonnenberger
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,