summaryrefslogtreecommitdiff
path: root/compiler-rt/README.txt
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-06-17 20:17:05 +0000
committerEric Christopher <echristo@apple.com>2011-06-17 20:17:05 +0000
commit0ac62e9b12c59af055cb41d6bfe5c607a352d879 (patch)
tree3b437396027e0cf9ebe05d696ad4c66180d40856 /compiler-rt/README.txt
parent4f9ed08f105f236797623d09d89dca42c9d78f26 (diff)
Implement mulo<mode>4 for use in signed overflow checking.
Fixes rdar://9219742 and rdar://9218244
Diffstat (limited to 'compiler-rt/README.txt')
-rw-r--r--compiler-rt/README.txt9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler-rt/README.txt b/compiler-rt/README.txt
index cbeb10cf918..b37c0aecdeb 100644
--- a/compiler-rt/README.txt
+++ b/compiler-rt/README.txt
@@ -106,6 +106,15 @@ si_int __mulvsi3(si_int a, si_int b); // a * b
di_int __mulvdi3(di_int a, di_int b); // a * b
ti_int __mulvti3(ti_int a, ti_int b); // a * b
+
+// Integral arithmetic which returns if overflow
+
+si_int __mulosi4(si_int a, si_int b, int* overflow); // a * b, overflow set to one if result not in signed range
+di_int __mulodi4(di_int a, di_int b, int* overflow); // a * b, overflow set to one if result not in signed range
+ti_int __muloti4(ti_int a, ti_int b, int* overflow); // a * b, overflow set to
+ one if result not in signed range
+
+
// Integral comparison: a < b -> 0
// a == b -> 1
// a > b -> 2