summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Mahone <andrew.mahone@gmail.com>2010-02-01 04:50:25 +0000
committerAndrew Mahone <andrew.mahone@gmail.com>2010-02-01 04:50:25 +0000
commite2b7721db6b62c148484064c7b8a0601737c52b4 (patch)
tree5a8821751447dbcc37fcdf3c3842f2c7f77cf267
parentbb86299b81f41bae1f34f18f0cf99d15c60749d7 (diff)
downloadrockbox-e2b7721db6b62c148484064c7b8a0601737c52b4.tar.gz
rockbox-e2b7721db6b62c148484064c7b8a0601737c52b4.zip
Some sort of issue in the signed divider is causing Gigabeat S to abort on startup, disable this routine until it's fixed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24436 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/support-arm.S10
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/target/arm/support-arm.S b/firmware/target/arm/support-arm.S
index 1b048f2e4f..38587b2adc 100644
--- a/firmware/target/arm/support-arm.S
+++ b/firmware/target/arm/support-arm.S
@@ -605,10 +605,10 @@ __div0_wrap:
605 .size __div0_wrap, . - __div0_wrap 605 .size __div0_wrap, . - __div0_wrap
606 606
607#ifndef __ARM_EABI__ 607#ifndef __ARM_EABI__
608#if ARM_ARCH < 5 /* Gigabeat S is crashing on boot with this enabled */
608 .global __divsi3 609 .global __divsi3
609 .type __divsi3,%function 610 .type __divsi3,%function
610 .global __udivsi3 611#endif
611 .type __udivsi3,%function
612 .global __udivsi3 612 .global __udivsi3
613 .type __udivsi3,%function 613 .type __udivsi3,%function
614#else 614#else
@@ -619,12 +619,14 @@ __div0_wrap:
619 .global __aeabi_uidiv 619 .global __aeabi_uidiv
620 .type __aeabi_uidiv,%function 620 .type __aeabi_uidiv,%function
621 .set __aeabi_uidiv,__aeabi_uidivmod 621 .set __aeabi_uidiv,__aeabi_uidivmod
622#if ARM_ARCH < 5 /* Gigabeat S is crashing on boot with this enabled */
622 .global __aeabi_idivmod 623 .global __aeabi_idivmod
623 .type __aeabi_idivmod,%function 624 .type __aeabi_idivmod,%function
624 .global __aeabi_idiv 625 .global __aeabi_idiv
625 .type __aeabi_idiv,%function 626 .type __aeabi_idiv,%function
626 .set __aeabi_idiv,__aeabi_idivmod 627 .set __aeabi_idiv,__aeabi_idivmod
627#endif 628#endif
629#endif
628 630
629 631
630#if ARM_ARCH < 5 632#if ARM_ARCH < 5
@@ -673,19 +675,23 @@ __udivsi3:
673 ARMV5_UDIV32_BODY r0, r1, r0, "", r2, r3, ip, __div0_wrap, 1 675 ARMV5_UDIV32_BODY r0, r1, r0, "", r2, r3, ip, __div0_wrap, 1
674 .size __udivsi3, . - __udivsi3 676 .size __udivsi3, . - __udivsi3
675 677
678#if ARM_ARCH < 5 /* Gigabeat S is crashing on boot with this enabled */
676__divsi3: 679__divsi3:
677 ARMV5_SDIV32_BODY r0, r1, r0, "", r2, lr, ip, r3, __div0_wrap_s, "ldr pc, [sp, #-4]" 680 ARMV5_SDIV32_BODY r0, r1, r0, "", r2, lr, ip, r3, __div0_wrap_s, "ldr pc, [sp, #-4]"
678 .size __divsi3, . - __divsi3 681 .size __divsi3, . - __divsi3
682#endif
679 683
680#else 684#else
681__aeabi_uidivmod: 685__aeabi_uidivmod:
682 ARMV5_UDIV32_BODY r0, r1, r0, r1, r2, r3, ip, __div0_wrap, 1 686 ARMV5_UDIV32_BODY r0, r1, r0, r1, r2, r3, ip, __div0_wrap, 1
683 .size __aeabi_uidivmod, . - __aeabi_uidivmo 687 .size __aeabi_uidivmod, . - __aeabi_uidivmo
684 688
689#if ARM_ARCH < 5 /* Gigabeat S is crashing on boot with this enabled */
685__aeabi_idivmod: 690__aeabi_idivmod:
686 ARMV5_SDIV32_BODY r0, r1, r0, r1, r2, lr, ip, r3, __div0_wrap_s, "ldr pc, [sp, #-4]" 691 ARMV5_SDIV32_BODY r0, r1, r0, r1, r2, lr, ip, r3, __div0_wrap_s, "ldr pc, [sp, #-4]"
687 .size __aeabi_idivmod, . - __aeabi_idivmod 692 .size __aeabi_idivmod, . - __aeabi_idivmod
688#endif 693#endif
694#endif
689 695
690.L_udiv_est_table: 696.L_udiv_est_table:
691 .byte 0xff, 0xfc, 0xf8, 0xf4, 0xf0, 0xed, 0xea, 0xe6 697 .byte 0xff, 0xfc, 0xf8, 0xf4, 0xf0, 0xed, 0xea, 0xe6