summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/arm/umodsi3.S
diff options
context:
space:
mode:
Diffstat (limited to 'compiler-rt/lib/arm/umodsi3.S')
-rw-r--r--compiler-rt/lib/arm/umodsi3.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler-rt/lib/arm/umodsi3.S b/compiler-rt/lib/arm/umodsi3.S
index 188edf30400..092a4f1a206 100644
--- a/compiler-rt/lib/arm/umodsi3.S
+++ b/compiler-rt/lib/arm/umodsi3.S
@@ -57,13 +57,16 @@ 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
+ it hs
movhs a, r
+ it ne
subsne i, i, #1
bhi LOCAL_LABEL(mainLoop)
// Do the final test subtraction and update of remainder (i == 0), as it is
// not performed in the main loop.
subs r, a, b
+ it hs
movhs a, r
bx lr
#endif
OpenPOWER on IntegriCloud