summaryrefslogtreecommitdiffstats
path: root/security/nss/automation/saw/bmul.saw
diff options
context:
space:
mode:
authorJustOff <Off.Just.Off@gmail.com>2018-06-09 15:11:22 +0300
committerJustOff <Off.Just.Off@gmail.com>2018-06-11 16:42:50 +0300
commitf83f62e1bff0c2aedc32e67fe369ba923c5b104a (patch)
treefbb69e76754552dde5c3c5d4fe928ed9693f601a /security/nss/automation/saw/bmul.saw
parent75323087aea91719bbb4f766bc6298d0618f0163 (diff)
downloadUXP-f83f62e1bff0c2aedc32e67fe369ba923c5b104a.tar
UXP-f83f62e1bff0c2aedc32e67fe369ba923c5b104a.tar.gz
UXP-f83f62e1bff0c2aedc32e67fe369ba923c5b104a.tar.lz
UXP-f83f62e1bff0c2aedc32e67fe369ba923c5b104a.tar.xz
UXP-f83f62e1bff0c2aedc32e67fe369ba923c5b104a.zip
Update NSS to 3.36.4-RTM
Diffstat (limited to 'security/nss/automation/saw/bmul.saw')
-rw-r--r--security/nss/automation/saw/bmul.saw26
1 files changed, 26 insertions, 0 deletions
diff --git a/security/nss/automation/saw/bmul.saw b/security/nss/automation/saw/bmul.saw
new file mode 100644
index 000000000..22cd2757b
--- /dev/null
+++ b/security/nss/automation/saw/bmul.saw
@@ -0,0 +1,26 @@
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import "bmul.cry";
+
+print "Loading LLVM bitcode...";
+m <- llvm_load_module "../../../dist/Debug/lib/libfreeblpriv3.so.bc";
+
+let SpecBinaryMul n = do {
+ x <- llvm_var "x" (llvm_int n);
+ y <- llvm_var "y" (llvm_int n);
+ llvm_ptr "r_high" (llvm_int n);
+ r_high <- llvm_var "*r_high" (llvm_int n);
+ llvm_ptr "r_low" (llvm_int n);
+ r_low <- llvm_var "*r_low" (llvm_int n);
+
+ let res = {{ bmul x y }};
+ llvm_ensure_eq "*r_high" {{ res.0 }};
+ llvm_ensure_eq "*r_low" {{ res.1 }};
+
+ llvm_verify_tactic abc;
+};
+
+print "Proving equality for 32-bit bmul()...";
+time (llvm_verify m "bmul32" [] (SpecBinaryMul 32));