summaryrefslogtreecommitdiffstats
path: root/third_party/webkit/PerformanceTests/ARES-6/Air/symbols.js
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/webkit/PerformanceTests/ARES-6/Air/symbols.js')
-rw-r--r--third_party/webkit/PerformanceTests/ARES-6/Air/symbols.js162
1 files changed, 162 insertions, 0 deletions
diff --git a/third_party/webkit/PerformanceTests/ARES-6/Air/symbols.js b/third_party/webkit/PerformanceTests/ARES-6/Air/symbols.js
new file mode 100644
index 0000000000..4ef7c63f73
--- /dev/null
+++ b/third_party/webkit/PerformanceTests/ARES-6/Air/symbols.js
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+"use strict";
+
+// This file is for misc symbols.
+
+// B3 types
+const Void = Symbol("Void");
+const Int32 = Symbol("Int32");
+const Int64 = Symbol("Int64");
+const Float = Symbol("Float");
+const Double = Symbol("Double");
+
+// Arg type
+const GP = Symbol("GP");
+const FP = Symbol("FP");
+
+// Stack slot kind
+const Locked = Symbol("Locked");
+const Spill = Symbol("Spill");
+
+// Frequency class
+const Normal = Symbol("Normal");
+const Rare = Symbol("Rare");
+
+// Relational conditions
+const Equal = Symbol("Equal");
+const NotEqual = Symbol("NotEqual");
+const Above = Symbol("Above");
+const AboveOrEqual = Symbol("AboveOrEqual");
+const Below = Symbol("Below");
+const BelowOrEqual = Symbol("BelowOrEqual");
+const GreaterThan = Symbol("GreaterThan");
+const GreaterThanOrEqual = Symbol("GreaterThanOrEqual");
+const LessThan = Symbol("LessThan");
+const LessThanOrEqual = Symbol("LessThanOrEqual");
+
+function relCondCode(cond)
+{
+ switch (cond) {
+ case Equal:
+ return 4;
+ case NotEqual:
+ return 5;
+ case Above:
+ return 7;
+ case AboveOrEqual:
+ return 3;
+ case Below:
+ return 2;
+ case BelowOrEqual:
+ return 6;
+ case GreaterThan:
+ return 15;
+ case GreaterThanOrEqual:
+ return 13;
+ case LessThan:
+ return 12;
+ case LessThanOrEqual:
+ return 14;
+ default:
+ throw new Error("Bad rel cond");
+ }
+}
+
+// Result conditions
+const Overflow = Symbol("Overflow");
+const Signed = Symbol("Signed");
+const PositiveOrZero = Symbol("PositiveOrZero");
+const Zero = Symbol("Zero");
+const NonZero = Symbol("NonZero");
+
+function resCondCode(cond)
+{
+ switch (cond) {
+ case Overflow:
+ return 0;
+ case Signed:
+ return 8;
+ case PositiveOrZero:
+ return 9;
+ case Zero:
+ return 4;
+ case NonZero:
+ return 5;
+ default:
+ throw new Error("Bad res cond: " + cond.toString());
+ }
+}
+
+// Double conditions
+const DoubleEqual = Symbol("DoubleEqual");
+const DoubleNotEqual = Symbol("DoubleNotEqual");
+const DoubleGreaterThan = Symbol("DoubleGreaterThan");
+const DoubleGreaterThanOrEqual = Symbol("DoubleGreaterThanOrEqual");
+const DoubleLessThan = Symbol("DoubleLessThan");
+const DoubleLessThanOrEqual = Symbol("DoubleLessThanOrEqual");
+const DoubleEqualOrUnordered = Symbol("DoubleEqualOrUnordered");
+const DoubleNotEqualOrUnordered = Symbol("DoubleNotEqualOrUnordered");
+const DoubleGreaterThanOrUnordered = Symbol("DoubleGreaterThanOrUnordered");
+const DoubleGreaterThanOrEqualOrUnordered = Symbol("DoubleGreaterThanOrEqualOrUnordered");
+const DoubleLessThanOrUnordered = Symbol("DoubleLessThanOrUnordered");
+const DoubleLessThanOrEqualOrUnordered = Symbol("DoubleLessThanOrEqualOrUnordered");
+
+function doubleCondCode(cond)
+{
+ const bitInvert = 0x10;
+ const bitSpecial = 0x20;
+ switch (cond) {
+ case DoubleEqual:
+ return 4 | bitSpecial;
+ case DoubleNotEqual:
+ return 5;
+ case DoubleGreaterThan:
+ return 7;
+ case DoubleGreaterThanOrEqual:
+ return 3;
+ case DoubleLessThan:
+ return 7 | bitInvert;
+ case DoubleLessThanOrEqual:
+ return 3 | bitInvert;
+ case DoubleEqualOrUnordered:
+ return 4;
+ case DoubleNotEqualOrUnordered:
+ return 5 | bitSpecial;
+ case DoubleGreaterThanOrUnordered:
+ return 2 | bitInvert;
+ case DoubleGreaterThanOrEqualOrUnordered:
+ return 6 | bitInvert;
+ case DoubleLessThanOrUnordered:
+ return 2;
+ case DoubleLessThanOrEqualOrUnordered:
+ return 6;
+ default:
+ throw new Error("Bad cond");
+ }
+}
+
+// Define pointerType()
+const Ptr = 64;