--- /dev/null
+\r
+/*\r
+ * Copyright (c) 1996, 1997 by Doug Bell <dbell@shvn.com>. All Rights Reserved.\r
+ * \r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ * notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ * notice, this list of conditions and the following disclaimer in the\r
+ * documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ */\r
+\r
+\r
+// This file has been hacked to compile without the rest of the\r
+// benchmark code.\r
+\r
+class OperatorBenchmark {\r
+\r
+ public int getSampleCount() { return 0; }\r
+ public int getSampleMillis() { return 0; }\r
+ public boolean go;\r
+ public int useint[];\r
+ public void startTest () { }\r
+ public long finishTest () { return 0; }\r
+ public void startTimer (boolean b) { }\r
+ public void stopTimer (int a, int b) { }\r
+ public void report (String s) { }\r
+ public void println (String s) { }\r
+\r
+ public int getTestTime () {\r
+ return (int) (100 * getSampleCount() * getSampleMillis()) / 1000;\r
+ }\r
+\r
+ public int getRunningTime () {\r
+ return (int) (1.1 * getTestTime());\r
+ }\r
+\r
+ public long runTest () {\r
+ int dummy1 = 0, dummy2 = 0, dummy3 = 0; // occupy implicit index slots\r
+ int cnt, ii;\r
+ byte b1 = 1, b2 = 2, b3 = 3;\r
+ short s1 = 1, s2 = 2, s3 = 3;\r
+ int i1 = 1, i2 = 2, i3 = 3;\r
+ long l1 = 1, l2 = 2, l3 = 3;\r
+ float f1 = 1, f2 = 2, f3 = 3;\r
+ double d1 = 1, d2 = 2, d3 = 3;\r
+\r
+ startTest();\r
+\r
+ println("--- byte operators, local vars");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1++;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte++");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 += b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte += byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 + b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte + byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 *= b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte *= byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 * b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte * byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 *= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte *= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 <<= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte <<= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 %= b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte %= byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 % b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte % byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 /= b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte /= byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 / b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte / byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 /= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte /= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 >>= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte >>= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 >>= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte >>= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 >> i3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte >> int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 |= b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte |= byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 | b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte | byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 &= b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte &= byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 & b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte & byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 ^= b2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte ^= byte");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ b1 = (byte) (b2 ^ b3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("byte = byte ^ byte");\r
+\r
+\r
+ println("--- short operators, local vars");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1++;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short++");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 += s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short += short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 + s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short + short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 *= s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short *= short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 * s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short * short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 *= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short *= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 <<= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short <<= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 %= s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short %= short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 % s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short % short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 /= s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short /= short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 / s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short / short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 /= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short /= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 >>= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short >>= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 >>= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short >>= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 >> i3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short >> int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 |= s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short |= short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 | s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short | short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 &= s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short &= short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 & s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short & short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 ^= s2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short ^= short");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ s1 = (short) (s2 ^ s3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("short = short ^ short");\r
+\r
+\r
+ println("--- int operators, local vars");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1++;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int++");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 += i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int += int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = (i2 + i3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int + int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 *= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int *= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = (i2 * i3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int * int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 *= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int *= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 <<= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int <<= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 %= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int %= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = (i2 % i3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int % int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 /= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int /= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = (i2 / i3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int / int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 /= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int /= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 >>= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int >>= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 >>= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int >>= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = i2 >> i3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int >> int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 |= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int |= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = i2 | i3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int | int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 &= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int &= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = i2 & i3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int & int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 ^= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int ^= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ i1 = i2 ^ i3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("int = int ^ int");\r
+\r
+\r
+ println("--- long operators, local vars");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1++;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long++");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 += l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long += long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = (l2 + l3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long + long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 *= l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long *= long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = (l2 * l3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long * long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 *= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long *= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 <<= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long <<= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 %= l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long %= long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = (l2 % l3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long % long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 /= l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long /= long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = (l2 / l3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long / long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 /= 2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long /= 2");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 >>= 1;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long >>= 1");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 >>= i2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long >>= int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = l2 >> i3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long >> int");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 |= l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long |= long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = l2 | l3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long | long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 &= l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long &= long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = l2 & l3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long & long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 ^= l2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long ^= long");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ l1 = l2 ^ l3;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("long = long ^ long");\r
+\r
+\r
+ println("--- float operators, local vars");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 += f2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float += float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 = (float) (f2 + f3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float = float + float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 *= f2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float *= float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 = (float) (f2 * f3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float = float * float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 %= f2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float %= float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 = (float) (f2 % f3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float = float % float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 /= f2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float /= float");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ f1 = (float) (f2 / f3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("float = float / float");\r
+\r
+\r
+ println("--- double operators, local vars");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 += d2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double += double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 = (d2 + d3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double = double + double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 *= d2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double *= double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 = (d2 * d3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double = double * double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 %= d2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double %= double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 = (d2 % d3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double = double % double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 /= d2;\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double /= double");\r
+\r
+ for (cnt = getSampleCount(); --cnt >= 0; ) {\r
+ startTimer(true);\r
+ for (ii = 0; go; ii++)\r
+ d1 = (d2 / d3);\r
+ stopTimer(cnt, ii);\r
+ }\r
+ report("double = double / double");\r
+\r
+ useint[0] = dummy1; useint[1] = dummy2; useint[2] = dummy3;\r
+ return finishTest();\r
+ }\r
+} // class OperatorBenchmark\r
+\r
+// EOF\r