summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2015-01-12 13:11:33 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-01-30 03:28:48 +0000
commitb86b8acb939089763ff40258b87662f399b8ce7e (patch)
tree666baf236725b127d343cd75c7298efa901761ac
parentabc2739388ef0085152cf9236f4295b739f61ebb (diff)
downloadchrome-ec-release-R41-6680.B.tar.gz
cortex-m0: optimize out unused assembly helpersstabilize-6680.79.Bstabilize-6680.78.Brelease-R41-6680.B
Put each assembly helper function in its own .text.__funcname__ section, so the linker can remove the unused ones. Also remove a few entrypoints used only by deprecated ABIs. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=samus BUG=none TEST=make buildall check the firmware size and see we are saving 88 bytes on Zinger. Original-Change-Id: I6714da671c3449220652780d47993d6c919c331c Reviewed-on: https://chromium-review.googlesource.com/240582 Reviewed-by: Alec Berg <alecaberg@chromium.org> Trybot-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> (cherry picked from commit e2355ff432dcef946b2f0b260e0de763c31288de) Reviewed-on: https://chromium-review.googlesource.com/240833 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> (cherry picked from commit 247fa806db512768fd48a53f5bbee8cd9d12a1c7) Signed-off-by: Todd Broch <tbroch@chromium.org> Change-Id: I2deb6053014366ff6c83ed5d5f0981ae02560c60 Reviewed-on: https://chromium-review.googlesource.com/244236 Reviewed-by: Alec Berg <alecaberg@chromium.org> Tested-by: Todd Broch <tbroch@chromium.org> Commit-Queue: Todd Broch <tbroch@chromium.org>
-rw-r--r--core/cortex-m0/div.S25
-rw-r--r--core/cortex-m0/lmul.S11
-rw-r--r--core/cortex-m0/thumb_case.S4
3 files changed, 8 insertions, 32 deletions
diff --git a/core/cortex-m0/div.S b/core/cortex-m0/div.S
index c20804e274..833465a59e 100644
--- a/core/cortex-m0/div.S
+++ b/core/cortex-m0/div.S
@@ -25,24 +25,13 @@
.thumb
.cpu cortex-m0
-
-
-@ int __divsi3(int num, int denom)
-@
-@ libgcc wrapper: just an alias for __aeabi_idivmod(), the remainder is ignored
-@
- .thumb_func
- .global __divsi3
-__divsi3:
-
-
-
@ int __aeabi_idiv(int num:r0, int denom:r1)
@
@ Divide r0 by r1 and return quotient in r0 (all signed).
@ Use __aeabi_uidivmod() but check signs before and change signs afterwards.
@
.thumb_func
+ .section .text.__aeabi_idiv
.global __aeabi_idiv
__aeabi_idiv:
@@ -77,6 +66,7 @@ L_neg_result:
@ Divide r0 by r1 and return the quotient in r0 and the remainder in r1
@
.thumb_func
+ .section .text.__aeabi_idivmod
.global __aeabi_idivmod
__aeabi_idivmod:
@@ -113,21 +103,12 @@ L_num_pos_bis:
-@ unsigned __udivsi3(unsigned num, unsigned denom)
-@
-@ libgcc wrapper: just an alias for __aeabi_uidivmod(), the remainder is ignored
-@
- .thumb_func
- .global __udivsi3
-__udivsi3:
-
-
-
@ unsigned __aeabi_uidiv(unsigned num, unsigned denom)
@
@ Just an alias for __aeabi_uidivmod(), the remainder is ignored
@
.thumb_func
+ .section .text.__aeabi_uidivmod
.global __aeabi_uidiv
__aeabi_uidiv:
diff --git a/core/cortex-m0/lmul.S b/core/cortex-m0/lmul.S
index 1e037a1ede..ab04fd488f 100644
--- a/core/cortex-m0/lmul.S
+++ b/core/cortex-m0/lmul.S
@@ -25,22 +25,13 @@
-@ long long __muldi3(long long, long long)
-@
-@ libgcc wrapper: just an alias for __aeabi_lmul()
-@
- .thumb_func
- .global __muldi3
-__muldi3:
-
-
-
@ long long __aeabi_lmul(long long r1:r0, long long r3:r2)
@
@ Multiply r1:r0 and r3:r2 and return the product in r1:r0
@ Can also be used for unsigned long product
@
.thumb_func
+ .section .text.__aeabi_lmul
.global __aeabi_lmul
__aeabi_lmul:
diff --git a/core/cortex-m0/thumb_case.S b/core/cortex-m0/thumb_case.S
index be6c02b764..0bc8b38db0 100644
--- a/core/cortex-m0/thumb_case.S
+++ b/core/cortex-m0/thumb_case.S
@@ -21,6 +21,7 @@
* r0 and lr must be PRESERVED.
* r12 can be clobbered.
*/
+.section .text.__gnu_thumb1_case_uqi
.global __gnu_thumb1_case_uqi
.thumb_func
__gnu_thumb1_case_uqi:
@@ -34,6 +35,7 @@ __gnu_thumb1_case_uqi:
mov r1, r12
bx lr
+.section .text.__gnu_thumb1_case_sqi
.global __gnu_thumb1_case_sqi
.thumb_func
__gnu_thumb1_case_sqi:
@@ -47,6 +49,7 @@ __gnu_thumb1_case_sqi:
mov r1, r12
bx lr
+.section .text.__gnu_thumb1_case_uhi
.global __gnu_thumb1_case_uhi
.thumb_func
__gnu_thumb1_case_uhi:
@@ -62,6 +65,7 @@ __gnu_thumb1_case_uhi:
bx lr
+.section .text.__gnu_thumb1_case_shi
.global __gnu_thumb1_case_shi
.thumb_func
__gnu_thumb1_case_shi: