summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/arm/umodsi3.S
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2013-11-11 22:50:13 +0000
committerTim Northover <tnorthover@apple.com>2013-11-11 22:50:13 +0000
commit38a0cb52011bda5f5ca390d7b6eb033345a38b0e (patch)
tree0aa0c06e745304e05a0c3b203ad0f45eeef9020c /compiler-rt/lib/arm/umodsi3.S
parenta28099fdd4617b8851b1c3a3c96a1e02767f0738 (diff)
downloadbcm5719-llvm-38a0cb52011bda5f5ca390d7b6eb033345a38b0e.tar.gz
bcm5719-llvm-38a0cb52011bda5f5ca390d7b6eb033345a38b0e.zip
ARM: make assembly files compile Thumb2 with nop IT block.
ARM's UAL syntax allows the same assembly file to be compiled in both ARM and Thumb mode. Conditional execution is handled by requiring the Thumb IT blocks, but essentially ignoring them when compiling for ARM. llvm-svn: 194429
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