X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=lib_arm%2F_udivsi3.S;h=13098026104734f83075727b1a197f145ffb15d9;hb=40b161f6aea54104d0a5e477ff6a22338e8a7b4b;hp=2cdcd48b49da28834a58569190af9b0ece84df77;hpb=8ad96012cd9e46b355ec63eb5a0155c92d8ca52c;p=karo-tx-uboot.git diff --git a/lib_arm/_udivsi3.S b/lib_arm/_udivsi3.S index 2cdcd48b49..1309802610 100755 --- a/lib_arm/_udivsi3.S +++ b/lib_arm/_udivsi3.S @@ -11,9 +11,12 @@ curbit .req r3 /* pc .req r15 */ .text .globl __udivsi3 - .type __udivsi3 ,function + .type __udivsi3 ,function + .globl __aeabi_uidiv + .type __aeabi_uidiv ,function .align 0 - __udivsi3 : + __udivsi3: + __aeabi_uidiv: cmp divisor, #0 beq Ldiv0 mov curbit, #1 @@ -61,17 +64,30 @@ Loop3: bne Loop3 Lgot_result: mov r0, result - mov pc, lr + mov pc, lr Ldiv0: str lr, [sp, #-4]! bl __div0 (PLT) mov r0, #0 @ about as wrong as it could be ldmia sp!, {pc} .size __udivsi3 , . - __udivsi3 -/* # 235 "libgcc1.S" */ -/* # 320 "libgcc1.S" */ -/* # 421 "libgcc1.S" */ -/* # 433 "libgcc1.S" */ -/* # 456 "libgcc1.S" */ -/* # 500 "libgcc1.S" */ -/* # 580 "libgcc1.S" */ + +.globl __aeabi_uidivmod +__aeabi_uidivmod: + + stmfd sp!, {r0, r1, ip, lr} + bl __aeabi_uidiv + ldmfd sp!, {r1, r2, ip, lr} + mul r3, r0, r2 + sub r1, r1, r3 + mov pc, lr + +.globl __aeabi_idivmod +__aeabi_idivmod: + + stmfd sp!, {r0, r1, ip, lr} + bl __aeabi_idiv + ldmfd sp!, {r1, r2, ip, lr} + mul r3, r0, r2 + sub r1, r1, r3 + mov pc, lr