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