OLD | NEW |
(Empty) | |
| 1 // Copyright 2017 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #ifndef V8_ASMJS_ASM_NAMES_H_ |
| 6 #define V8_ASMJS_ASM_NAMES_H_ |
| 7 |
| 8 #define STDLIB_MATH_VALUE_LIST(V) \ |
| 9 V(E) \ |
| 10 V(LN10) \ |
| 11 V(LN2) \ |
| 12 V(LOG2E) \ |
| 13 V(LOG10E) \ |
| 14 V(PI) \ |
| 15 V(SQRT1_2) \ |
| 16 V(SQRT2) |
| 17 |
| 18 // V(stdlib.Math.<name>, Name, wasm-opcode, asm-js-type) |
| 19 #define STDLIB_MATH_FUNCTION_MONOMORPHIC_LIST(V) \ |
| 20 V(acos, Acos, kExprF64Acos, dq2d) \ |
| 21 V(asin, Asin, kExprF64Asin, dq2d) \ |
| 22 V(atan, Atan, kExprF64Atan, dq2d) \ |
| 23 V(cos, Cos, kExprF64Cos, dq2d) \ |
| 24 V(sin, Sin, kExprF64Sin, dq2d) \ |
| 25 V(tan, Tan, kExprF64Tan, dq2d) \ |
| 26 V(exp, Exp, kExprF64Exp, dq2d) \ |
| 27 V(log, Log, kExprF64Log, dq2d) \ |
| 28 V(atan2, Atan2, kExprF64Atan2, dqdq2d) \ |
| 29 V(pow, Pow, kExprF64Pow, dqdq2d) \ |
| 30 V(imul, Imul, kExprI32Mul, ii2s) \ |
| 31 V(clz32, Clz32, kExprI32Clz, i2s) |
| 32 |
| 33 // V(stdlib.Math.<name>, Name, unused, asm-js-type) |
| 34 #define STDLIB_MATH_FUNCTION_CEIL_LIKE_LIST(V) \ |
| 35 V(ceil, Ceil, x, ceil_like) \ |
| 36 V(floor, Floor, x, ceil_like) \ |
| 37 V(sqrt, Sqrt, x, ceil_like) |
| 38 |
| 39 // V(stdlib.Math.<name>, Name, unused, asm-js-type) |
| 40 #define STDLIB_MATH_FUNCTION_LIST(V) \ |
| 41 V(min, Min, x, minmax) \ |
| 42 V(max, Max, x, minmax) \ |
| 43 V(abs, Abs, x, abs) \ |
| 44 V(fround, Fround, x, fround) \ |
| 45 STDLIB_MATH_FUNCTION_MONOMORPHIC_LIST(V) \ |
| 46 STDLIB_MATH_FUNCTION_CEIL_LIKE_LIST(V) |
| 47 |
| 48 // V(stdlib.<name>, wasm-load-type, wasm-store-type, wasm-type) |
| 49 #define STDLIB_ARRAY_TYPE_LIST(V) \ |
| 50 V(Int8Array, Mem8S, Mem8, I32) \ |
| 51 V(Uint8Array, Mem8U, Mem8, I32) \ |
| 52 V(Int16Array, Mem16S, Mem16, I32) \ |
| 53 V(Uint16Array, Mem16U, Mem16, I32) \ |
| 54 V(Int32Array, Mem, Mem, I32) \ |
| 55 V(Uint32Array, Mem, Mem, I32) \ |
| 56 V(Float32Array, Mem, Mem, F32) \ |
| 57 V(Float64Array, Mem, Mem, F64) |
| 58 |
| 59 #define STDLIB_OTHER_LIST(V) \ |
| 60 V(Infinity) \ |
| 61 V(NaN) \ |
| 62 V(Math) |
| 63 |
| 64 // clang-format off (for return) |
| 65 #define KEYWORD_NAME_LIST(V) \ |
| 66 V(arguments) \ |
| 67 V(break) \ |
| 68 V(case) \ |
| 69 V(const) \ |
| 70 V(continue) \ |
| 71 V(default) \ |
| 72 V(do) \ |
| 73 V(else) \ |
| 74 V(eval) \ |
| 75 V(for) \ |
| 76 V(function) \ |
| 77 V(if) \ |
| 78 V(new) \ |
| 79 V(return ) \ |
| 80 V(switch) \ |
| 81 V(var) \ |
| 82 V(while) |
| 83 // clang-format on |
| 84 |
| 85 // V(token-string, token-name) |
| 86 #define LONG_SYMBOL_NAME_LIST(V) \ |
| 87 V("<=", LE) \ |
| 88 V(">=", GE) \ |
| 89 V("==", EQ) \ |
| 90 V("!=", NE) \ |
| 91 V("<<", SHL) \ |
| 92 V(">>", SAR) \ |
| 93 V(">>>", SHR) \ |
| 94 V("'use asm'", UseAsm) |
| 95 |
| 96 // clang-format off |
| 97 #define SIMPLE_SINGLE_TOKEN_LIST(V) \ |
| 98 V('+') V('-') V('*') V('%') V('~') V('^') V('&') V('|') V('(') V(')') \ |
| 99 V('[') V(']') V('{') V('}') V(':') V(';') V(',') V('?') |
| 100 // clang-format on |
| 101 |
| 102 // V(name, value, string-name) |
| 103 #define SPECIAL_TOKEN_LIST(V) \ |
| 104 V(kUninitialized, 0, "{uninitalized}") \ |
| 105 V(kEndOfInput, -1, "{end of input}") \ |
| 106 V(kParseError, -2, "{parse error}") \ |
| 107 V(kUnsigned, -3, "{unsigned value}") \ |
| 108 V(kDouble, -4, "{double value}") |
| 109 |
| 110 #endif |
OLD | NEW |