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

Side by Side Diff: test/mjsunit/wasm/wasm-constants.js

Issue 2081973003: Refactor module builder (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 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
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 // Flags: --expose-wasm 5 // Flags: --expose-wasm
6 6
7 function bytes() { 7 function bytes() {
8 var buffer = new ArrayBuffer(arguments.length); 8 var buffer = new ArrayBuffer(arguments.length);
9 var view = new Uint8Array(buffer); 9 var view = new Uint8Array(buffer);
10 for (var i = 0; i < arguments.length; i++) { 10 for (var i = 0; i < arguments.length; i++) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 if ((typeof val) == "string") val = val.charCodeAt(0); 45 if ((typeof val) == "string") val = val.charCodeAt(0);
46 view[kHeaderSize + i] = val | 0; 46 view[kHeaderSize + i] = val | 0;
47 } 47 }
48 return buffer; 48 return buffer;
49 } 49 }
50 50
51 var kDeclNoLocals = 0; 51 var kDeclNoLocals = 0;
52 52
53 // Section declaration constants 53 // Section declaration constants
54 var kDeclMemory = 0x00; 54 var kDeclMemory = 0x00;
55 var kDeclSignatures = 0x01; 55 var kDeclTypes = 0x01;
56 var kDeclFunctions = 0x02; 56 var kDeclFunctions = 0x02;
57 var kDeclGlobals = 0x03; 57 var kDeclGlobals = 0x03;
58 var kDeclDataSegments = 0x04; 58 var kDeclData = 0x04;
59 var kDeclFunctionTable = 0x05; 59 var kDeclTable = 0x05;
60 var kDeclEnd = 0x06; 60 var kDeclEnd = 0x06;
61 var kDeclStartFunction = 0x07; 61 var kDeclStart = 0x07;
62 var kDeclImportTable = 0x08; 62 var kDeclImports = 0x08;
63 var kDeclExportTable = 0x09; 63 var kDeclExports = 0x09;
64 var kDeclFunctionSignatures = 0x0a; 64 var kDeclFunctions = 0x0a;
65 var kDeclFunctionBodies = 0x0b; 65 var kDeclCode = 0x0b;
66 var kDeclNames = 0x0c; 66 var kDeclNames = 0x0c;
67 67
68 var kArity0 = 0; 68 var kArity0 = 0;
69 var kArity1 = 1; 69 var kArity1 = 1;
70 var kArity2 = 2; 70 var kArity2 = 2;
71 var kArity3 = 3; 71 var kArity3 = 3;
72 var kWasmFunctionTypeForm = 0x40; 72 var kWasmFunctionTypeForm = 0x40;
73 73
74 var section_names = [ 74 var section_names = [
75 "memory", "type", "old_function", "global", "data", 75 "memory", "type", "old_function", "global", "data",
76 "table", "end", "start", "import", "export", 76 "table", "end", "start", "import", "export",
77 "function", "code", "name"]; 77 "function", "code", "name"];
78 78
79 // Function declaration flags 79 // Function declaration flags
80 var kDeclFunctionName = 0x01; 80 var kDeclFunctionName = 0x01;
81 var kDeclFunctionImport = 0x02; 81 var kDeclFunctionImport = 0x02;
82 var kDeclFunctionLocals = 0x04; 82 var kDeclFunctionLocals = 0x04;
83 var kDeclFunctionExport = 0x08; 83 var kDeclFunctionExport = 0x08;
84 84
85 // Local types 85 // Local types
86 var kAstStmt = 0; 86 var kAstStmt = 0;
87 var kAstI32 = 1; 87 var kAstI32 = 1;
88 var kAstI64 = 2; 88 var kAstI64 = 2;
89 var kAstF32 = 3; 89 var kAstF32 = 3;
90 var kAstF64 = 4; 90 var kAstF64 = 4;
91 91
92 // Useful signatures 92 // Useful signatures
93 var kSig_i = [0, 1, kAstI32]; 93 var kSig_i = makeSig([], [kAstI32]);
94 var kSig_d = [0, 1, kAstF64]; 94 var kSig_d = makeSig([], [kAstF64]);
95 var kSig_i_i = [1, kAstI32, 1, kAstI32]; 95 var kSig_i_i = makeSig([kAstI32], [kAstI32]);
96 var kSig_i_ii = [2, kAstI32, kAstI32, 1, kAstI32]; 96 var kSig_i_ii = makeSig([kAstI32, kAstI32], [kAstI32]);
97 var kSig_i_iii = [3, kAstI32, kAstI32, kAstI32, 1, kAstI32]; 97 var kSig_i_iii = makeSig([kAstI32, kAstI32, kAstI32], [kAstI32]);
98 var kSig_d_dd = [2, kAstF64, kAstF64, 1, kAstF64]; 98 var kSig_d_dd = makeSig([kAstF64, kAstF64], [kAstF64]);
99 var kSig_l_ll = [2, kAstI64, kAstI64, 1, kAstI64]; 99 var kSig_l_ll = makeSig([kAstI64, kAstI64], [kAstI64]);
100 var kSig_i_dd = [2, kAstF64, kAstF64, 1, kAstI32]; 100 var kSig_i_dd = makeSig([kAstF64, kAstF64], [kAstI32]);
101 var kSig_v_v = [0, 0]; 101 var kSig_v_v = makeSig([], []);
102 var kSig_i_v = [0, 1, kAstI32]; 102 var kSig_i_v = makeSig([], [kAstI32]);
103 103
104 function makeSig_v_xx(x) { 104 function makeSig(params, results) {
105 return [2, x, x, 0]; 105 return {params: params, results: results};
106 } 106 }
107 107
108 function makeSig_v_x(x) { 108 function makeSig_v_x(x) {
109 return [1, x, 0]; 109 return makeSig([x], []);
110 }
111
112 function makeSig_v_xx(x) {
113 return makeSig([x, x], []);
114 }
115
116 function makeSig_r_v(r) {
117 return makeSig([], [r]);
118 }
119
120 function makeSig_r_x(r, x) {
121 return makeSig([x], [r]);
110 } 122 }
111 123
112 function makeSig_r_xx(r, x) { 124 function makeSig_r_xx(r, x) {
113 return [2, x, x, 1, r]; 125 return makeSig([x, x], [r]);
114 }
115
116 function makeSig_r_x(r, x) {
117 return [1, x, 1, r];
118 } 126 }
119 127
120 // Opcodes 128 // Opcodes
121 var kExprNop = 0x00; 129 var kExprNop = 0x00;
122 var kExprBlock = 0x01; 130 var kExprBlock = 0x01;
123 var kExprLoop = 0x02; 131 var kExprLoop = 0x02;
124 var kExprIf = 0x03; 132 var kExprIf = 0x03;
125 var kExprElse = 0x04; 133 var kExprElse = 0x04;
126 var kExprSelect = 0x05; 134 var kExprSelect = 0x05;
127 var kExprBr = 0x06; 135 var kExprBr = 0x06;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 } 333 }
326 threwException = false; 334 threwException = false;
327 } catch (e) { 335 } catch (e) {
328 assertEquals("object", typeof e); 336 assertEquals("object", typeof e);
329 assertEquals(kTrapMsgs[trap], e.message); 337 assertEquals(kTrapMsgs[trap], e.message);
330 // Success. 338 // Success.
331 return; 339 return;
332 } 340 }
333 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap] ); 341 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap] );
334 } 342 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698