--- /dev/null
+title: SystemTap "Floating Point" Program
+name: floatingpoint.stp
+keywords: simple floatingpoint
+description: A basic "Floating Point" program implemented in SystemTap script. It extracts floating point from benchmark-sdt section in main.cxx and takes one pseudo floating point, printing out results of various simple floating point operations.
+test_check: stap -p4 floatingpoint.stp -c "stap --benchmark-sdt"
+test_installcheck: stap floatingpoint.stp -c "stap --benchmark-sdt"
+
--- /dev/null
+#! /usr/bin/env stap
+
+function printlnfp(a) { println(fp_to_string(a,5)) }
+
+probe process("stap").function("sdt_benchmark_thread") {
+ a = user_long($fpointer)
+
+ b = string_to_fp("3.14")
+ c = long_to_fp(2)
+
+ printf("round 3.14 to long : %ld\n", fp_to_long(b, 0, 0))
+
+ print("a + b * c = ")
+ printlnfp(fp_add(a, fp_mul(b, c)))
+
+ printf("sqrt(b) >= b / c : ")
+ println(fp_lt(fp_sqrt(b), fp_div(b, c)))
+
+ exit()
+}