diff options
Diffstat (limited to 'lib/arm/udivsi3.S')
-rw-r--r-- | lib/arm/udivsi3.S | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/arm/udivsi3.S b/lib/arm/udivsi3.S index 28979fee4bdcc..2bb14123ca317 100644 --- a/lib/arm/udivsi3.S +++ b/lib/arm/udivsi3.S @@ -33,7 +33,7 @@ // Ok, APCS and AAPCS agree on 32 bit args, so it's safe to use the same routine. DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_uidiv, __udivsi3) DEFINE_COMPILERRT_FUNCTION(__udivsi3) -#if __ARM_ARCH_7S__ +#if __ARM_ARCH_EXT_IDIV__ tst r1,r1 beq LOCAL_LABEL(divzero) udiv r0, r0, r1 @@ -73,14 +73,17 @@ LOCAL_LABEL(mainLoop): // this way, we can merge the two branches which is a substantial win for // such a tight loop on current ARM architectures. subs r, a, b, lsl i + itt hs orrhs q, q,one, lsl i movhs a, r + it ne subsne i, i, #1 bhi LOCAL_LABEL(mainLoop) // Do the final test subtraction and update of quotient (i == 0), as it is // not performed in the main loop. subs r, a, b + it hs orrhs q, #1 LOCAL_LABEL(return): |