diff options
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/support-arm.S | 10 |
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 |