Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: test/cctest/wasm/test-signatures.h

Issue 2230063002: [wasm] Experimental: Add support for multiple non-homogeneous tables Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/cctest/wasm/test-run-wasm-js.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef TEST_SIGNATURES_H 5 #ifndef TEST_SIGNATURES_H
6 #define TEST_SIGNATURES_H 6 #define TEST_SIGNATURES_H
7 7
8 #include "src/signature.h" 8 #include "src/signature.h"
9 #include "src/wasm/wasm-opcodes.h" 9 #include "src/wasm/wasm-opcodes.h"
10 10
11 namespace v8 { 11 namespace v8 {
12 namespace internal { 12 namespace internal {
13 namespace wasm { 13 namespace wasm {
14 14
15 typedef Signature<LocalType> FunctionSig; 15 typedef Signature<LocalType> FunctionSig;
16 16
17 // A helper class with many useful signatures in order to simplify tests. 17 // A helper class with many useful signatures in order to simplify tests.
18 class TestSignatures { 18 class TestSignatures {
19 public: 19 public:
20 TestSignatures() 20 TestSignatures()
21 : sig_i_v(1, 0, kIntTypes4), 21 : sig_anyfunc(0, 1, kNoneType),
22 sig_i_v(1, 0, kIntTypes4),
22 sig_i_i(1, 1, kIntTypes4), 23 sig_i_i(1, 1, kIntTypes4),
23 sig_i_ii(1, 2, kIntTypes4), 24 sig_i_ii(1, 2, kIntTypes4),
24 sig_i_iii(1, 3, kIntTypes4), 25 sig_i_iii(1, 3, kIntTypes4),
25 sig_i_f(1, 1, kIntFloatTypes4), 26 sig_i_f(1, 1, kIntFloatTypes4),
26 sig_i_ff(1, 2, kIntFloatTypes4), 27 sig_i_ff(1, 2, kIntFloatTypes4),
27 sig_i_d(1, 1, kIntDoubleTypes4), 28 sig_i_d(1, 1, kIntDoubleTypes4),
28 sig_i_dd(1, 2, kIntDoubleTypes4), 29 sig_i_dd(1, 2, kIntDoubleTypes4),
29 sig_l_v(1, 0, kLongTypes4), 30 sig_l_v(1, 0, kLongTypes4),
30 sig_l_l(1, 1, kLongTypes4), 31 sig_l_l(1, 1, kLongTypes4),
31 sig_l_ll(1, 2, kLongTypes4), 32 sig_l_ll(1, 2, kLongTypes4),
32 sig_i_ll(1, 2, kIntLongTypes4), 33 sig_i_ll(1, 2, kIntLongTypes4),
33 sig_f_ff(1, 2, kFloatTypes4), 34 sig_f_ff(1, 2, kFloatTypes4),
34 sig_d_dd(1, 2, kDoubleTypes4), 35 sig_d_dd(1, 2, kDoubleTypes4),
35 sig_v_v(0, 0, kIntTypes4), 36 sig_v_v(0, 0, kIntTypes4),
36 sig_v_i(0, 1, kIntTypes4), 37 sig_v_i(0, 1, kIntTypes4),
37 sig_v_ii(0, 2, kIntTypes4), 38 sig_v_ii(0, 2, kIntTypes4),
38 sig_v_iii(0, 3, kIntTypes4), 39 sig_v_iii(0, 3, kIntTypes4),
39 sig_s_i(1, 1, kSimd128IntTypes4) { 40 sig_s_i(1, 1, kSimd128IntTypes4) {
40 // I used C++ and you won't believe what happened next.... 41 // I used C++ and you won't believe what happened next....
42 kNoneType[0] = kAstStmt;
41 for (int i = 0; i < 4; i++) kIntTypes4[i] = kAstI32; 43 for (int i = 0; i < 4; i++) kIntTypes4[i] = kAstI32;
42 for (int i = 0; i < 4; i++) kLongTypes4[i] = kAstI64; 44 for (int i = 0; i < 4; i++) kLongTypes4[i] = kAstI64;
43 for (int i = 0; i < 4; i++) kFloatTypes4[i] = kAstF32; 45 for (int i = 0; i < 4; i++) kFloatTypes4[i] = kAstF32;
44 for (int i = 0; i < 4; i++) kDoubleTypes4[i] = kAstF64; 46 for (int i = 0; i < 4; i++) kDoubleTypes4[i] = kAstF64;
45 for (int i = 0; i < 4; i++) kIntLongTypes4[i] = kAstI64; 47 for (int i = 0; i < 4; i++) kIntLongTypes4[i] = kAstI64;
46 for (int i = 0; i < 4; i++) kIntFloatTypes4[i] = kAstF32; 48 for (int i = 0; i < 4; i++) kIntFloatTypes4[i] = kAstF32;
47 for (int i = 0; i < 4; i++) kIntDoubleTypes4[i] = kAstF64; 49 for (int i = 0; i < 4; i++) kIntDoubleTypes4[i] = kAstF64;
48 for (int i = 0; i < 4; i++) kSimd128IntTypes4[i] = kAstS128; 50 for (int i = 0; i < 4; i++) kSimd128IntTypes4[i] = kAstS128;
49 kIntLongTypes4[0] = kAstI32; 51 kIntLongTypes4[0] = kAstI32;
50 kIntFloatTypes4[0] = kAstI32; 52 kIntFloatTypes4[0] = kAstI32;
51 kIntDoubleTypes4[0] = kAstI32; 53 kIntDoubleTypes4[0] = kAstI32;
52 kSimd128IntTypes4[1] = kAstI32; 54 kSimd128IntTypes4[1] = kAstI32;
53 } 55 }
54 56
57 FunctionSig* anyfunc() { return &sig_anyfunc; }
58
55 FunctionSig* i_v() { return &sig_i_v; } 59 FunctionSig* i_v() { return &sig_i_v; }
56 FunctionSig* i_i() { return &sig_i_i; } 60 FunctionSig* i_i() { return &sig_i_i; }
57 FunctionSig* i_ii() { return &sig_i_ii; } 61 FunctionSig* i_ii() { return &sig_i_ii; }
58 FunctionSig* i_iii() { return &sig_i_iii; } 62 FunctionSig* i_iii() { return &sig_i_iii; }
59 63
60 FunctionSig* i_f() { return &sig_i_f; } 64 FunctionSig* i_f() { return &sig_i_f; }
61 FunctionSig* i_ff() { return &sig_i_ff; } 65 FunctionSig* i_ff() { return &sig_i_ff; }
62 FunctionSig* i_d() { return &sig_i_d; } 66 FunctionSig* i_d() { return &sig_i_d; }
63 FunctionSig* i_dd() { return &sig_i_dd; } 67 FunctionSig* i_dd() { return &sig_i_dd; }
64 68
(...skipping 14 matching lines...) Expand all
79 FunctionSig* many(Zone* zone, LocalType ret, LocalType param, int count) { 83 FunctionSig* many(Zone* zone, LocalType ret, LocalType param, int count) {
80 FunctionSig::Builder builder(zone, ret == kAstStmt ? 0 : 1, count); 84 FunctionSig::Builder builder(zone, ret == kAstStmt ? 0 : 1, count);
81 if (ret != kAstStmt) builder.AddReturn(ret); 85 if (ret != kAstStmt) builder.AddReturn(ret);
82 for (int i = 0; i < count; i++) { 86 for (int i = 0; i < count; i++) {
83 builder.AddParam(param); 87 builder.AddParam(param);
84 } 88 }
85 return builder.Build(); 89 return builder.Build();
86 } 90 }
87 91
88 private: 92 private:
93 LocalType kNoneType[1];
89 LocalType kIntTypes4[4]; 94 LocalType kIntTypes4[4];
90 LocalType kLongTypes4[4]; 95 LocalType kLongTypes4[4];
91 LocalType kFloatTypes4[4]; 96 LocalType kFloatTypes4[4];
92 LocalType kDoubleTypes4[4]; 97 LocalType kDoubleTypes4[4];
93 LocalType kIntLongTypes4[4]; 98 LocalType kIntLongTypes4[4];
94 LocalType kIntFloatTypes4[4]; 99 LocalType kIntFloatTypes4[4];
95 LocalType kIntDoubleTypes4[4]; 100 LocalType kIntDoubleTypes4[4];
96 LocalType kSimd128IntTypes4[4]; 101 LocalType kSimd128IntTypes4[4];
97 102
103 FunctionSig sig_anyfunc;
104
98 FunctionSig sig_i_v; 105 FunctionSig sig_i_v;
99 FunctionSig sig_i_i; 106 FunctionSig sig_i_i;
100 FunctionSig sig_i_ii; 107 FunctionSig sig_i_ii;
101 FunctionSig sig_i_iii; 108 FunctionSig sig_i_iii;
102 109
103 FunctionSig sig_i_f; 110 FunctionSig sig_i_f;
104 FunctionSig sig_i_ff; 111 FunctionSig sig_i_ff;
105 FunctionSig sig_i_d; 112 FunctionSig sig_i_d;
106 FunctionSig sig_i_dd; 113 FunctionSig sig_i_dd;
107 114
108 FunctionSig sig_l_v; 115 FunctionSig sig_l_v;
109 FunctionSig sig_l_l; 116 FunctionSig sig_l_l;
110 FunctionSig sig_l_ll; 117 FunctionSig sig_l_ll;
111 FunctionSig sig_i_ll; 118 FunctionSig sig_i_ll;
112 119
113 FunctionSig sig_f_ff; 120 FunctionSig sig_f_ff;
114 FunctionSig sig_d_dd; 121 FunctionSig sig_d_dd;
115 122
116 FunctionSig sig_v_v; 123 FunctionSig sig_v_v;
117 FunctionSig sig_v_i; 124 FunctionSig sig_v_i;
118 FunctionSig sig_v_ii; 125 FunctionSig sig_v_ii;
119 FunctionSig sig_v_iii; 126 FunctionSig sig_v_iii;
120 FunctionSig sig_s_i; 127 FunctionSig sig_s_i;
121 }; 128 };
122 } // namespace wasm 129 } // namespace wasm
123 } // namespace internal 130 } // namespace internal
124 } // namespace v8 131 } // namespace v8
125 132
126 #endif // TEST_SIGNATURES_H 133 #endif // TEST_SIGNATURES_H
OLDNEW
« no previous file with comments | « test/cctest/wasm/test-run-wasm-js.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698