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

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

Issue 1504713014: Initial import of v8-native WASM. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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/mjsunit/wasm/verify-module-basic-errors.js ('k') | test/mjsunit/wasm/wasm-object-api.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 function bytes() {
6 var buffer = new ArrayBuffer(arguments.length);
7 var view = new Uint8Array(buffer);
8 for (var i = 0; i < arguments.length; i++) {
9 var val = arguments[i];
10 if ((typeof val) == "string") val = val.charCodeAt(0);
11 view[i] = val | 0;
12 }
13 return buffer;
14 }
15
16 // Section declaration constants
17 var kDeclMemory = 0x00;
18 var kDeclSignatures = 0x01;
19 var kDeclFunctions = 0x02;
20 var kDeclGlobals = 0x03;
21 var kDeclDataSegments = 0x04;
22 var kDeclFunctionTable = 0x05;
23 var kDeclEnd = 0x06;
24
25 // Function declaration flags
26 var kDeclFunctionName = 0x01;
27 var kDeclFunctionImport = 0x02;
28 var kDeclFunctionLocals = 0x04;
29 var kDeclFunctionExport = 0x08;
30
31 // Local types
32 var kAstStmt = 0;
33 var kAstI32 = 1;
34 var kAstI64 = 2;
35 var kAstF32 = 3;
36 var kAstF64 = 4;
37
38 // Opcodes
39 var kExprNop = 0x00;
40 var kExprBlock = 0x01;
41 var kExprLoop = 0x02;
42 var kExprIf = 0x03;
43 var kExprIfElse = 0x04;
44 var kExprSelect = 0x05;
45 var kExprBr = 0x06;
46 var kExprBrIf = 0x07;
47 var kExprTableSwitch = 0x08;
48 var kExprReturn = 0x14;
49 var kExprUnreachable = 0x15;
50
51 var kExprI8Const = 0x09;
52 var kExprI32Const = 0x0a;
53 var kExprI64Const = 0x0b;
54 var kExprF64Const = 0x0c;
55 var kExprF32Const = 0x0d;
56 var kExprGetLocal = 0x0e;
57 var kExprSetLocal = 0x0f;
58 var kExprLoadGlobal = 0x10;
59 var kExprStoreGlobal = 0x11;
60 var kExprCallFunction = 0x12;
61 var kExprCallIndirect = 0x13;
62
63 var kExprI32LoadMem8S = 0x20;
64 var kExprI32LoadMem8U = 0x21;
65 var kExprI32LoadMem16S = 0x22;
66 var kExprI32LoadMem16U = 0x23;
67 var kExprI64LoadMem8S = 0x24;
68 var kExprI64LoadMem8U = 0x25;
69 var kExprI64LoadMem16S = 0x26;
70 var kExprI64LoadMem16U = 0x27;
71 var kExprI64LoadMem32S = 0x28;
72 var kExprI64LoadMem32U = 0x29;
73 var kExprI32LoadMem = 0x2a;
74 var kExprI64LoadMem = 0x2b;
75 var kExprF32LoadMem = 0x2c;
76 var kExprF64LoadMem = 0x2d;
77
78 var kExprI32StoreMem8 = 0x2e;
79 var kExprI32StoreMem16 = 0x2f;
80 var kExprI64StoreMem8 = 0x30;
81 var kExprI64StoreMem16 = 0x31;
82 var kExprI64StoreMem32 = 0x32;
83 var kExprI32StoreMem = 0x33;
84 var kExprI64StoreMem = 0x34;
85 var kExprF32StoreMem = 0x35;
86 var kExprF64StoreMem = 0x36;
87
88 var kExprMemorySize = 0x3b;
89 var kExprGrowMemory = 0x39;
90
91 var kExprI32Add = 0x40;
92 var kExprI32Sub = 0x41;
93 var kExprI32Mul = 0x42;
94 var kExprI32DivS = 0x43;
95 var kExprI32DivU = 0x44;
96 var kExprI32RemS = 0x45;
97 var kExprI32RemU = 0x46;
98 var kExprI32And = 0x47;
99 var kExprI32Ior = 0x48;
100 var kExprI32Xor = 0x49;
101 var kExprI32Shl = 0x4a;
102 var kExprI32ShrU = 0x4b;
103 var kExprI32ShrS = 0x4c;
104 var kExprI32Eq = 0x4d;
105 var kExprI32Ne = 0x4e;
106 var kExprI32LtS = 0x4f;
107 var kExprI32LeS = 0x50;
108 var kExprI32LtU = 0x51;
109 var kExprI32LeU = 0x52;
110 var kExprI32GtS = 0x53;
111 var kExprI32GeS = 0x54;
112 var kExprI32GtU = 0x55;
113 var kExprI32GeU = 0x56;
114 var kExprI32Clz = 0x57;
115 var kExprI32Ctz = 0x58;
116 var kExprI32Popcnt = 0x59;
117 var kExprBoolNot = 0x5a;
118 var kExprI64Add = 0x5b;
119 var kExprI64Sub = 0x5c;
120 var kExprI64Mul = 0x5d;
121 var kExprI64DivS = 0x5e;
122 var kExprI64DivU = 0x5f;
123 var kExprI64RemS = 0x60;
124 var kExprI64RemU = 0x61;
125 var kExprI64And = 0x62;
126 var kExprI64Ior = 0x63;
127 var kExprI64Xor = 0x64;
128 var kExprI64Shl = 0x65;
129 var kExprI64ShrU = 0x66;
130 var kExprI64ShrS = 0x67;
131 var kExprI64Eq = 0x68;
132 var kExprI64Ne = 0x69;
133 var kExprI64LtS = 0x6a;
134 var kExprI64LeS = 0x6b;
135 var kExprI64LtU = 0x6c;
136 var kExprI64LeU = 0x6d;
137 var kExprI64GtS = 0x6e;
138 var kExprI64GeS = 0x6f;
139 var kExprI64GtU = 0x70;
140 var kExprI64GeU = 0x71;
141 var kExprI64Clz = 0x72;
142 var kExprI64Ctz = 0x73;
143 var kExprI64Popcnt = 0x74;
144 var kExprF32Add = 0x75;
145 var kExprF32Sub = 0x76;
146 var kExprF32Mul = 0x77;
147 var kExprF32Div = 0x78;
148 var kExprF32Min = 0x79;
149 var kExprF32Max = 0x7a;
150 var kExprF32Abs = 0x7b;
151 var kExprF32Neg = 0x7c;
152 var kExprF32CopySign = 0x7d;
153 var kExprF32Ceil = 0x7e;
154 var kExprF32Floor = 0x7f;
155 var kExprF32Trunc = 0x80;
156 var kExprF32NearestInt = 0x81;
157 var kExprF32Sqrt = 0x82;
158 var kExprF32Eq = 0x83;
159 var kExprF32Ne = 0x84;
160 var kExprF32Lt = 0x85;
161 var kExprF32Le = 0x86;
162 var kExprF32Gt = 0x87;
163 var kExprF32Ge = 0x88;
164 var kExprF64Add = 0x89;
165 var kExprF64Sub = 0x8a;
166 var kExprF64Mul = 0x8b;
167 var kExprF64Div = 0x8c;
168 var kExprF64Min = 0x8d;
169 var kExprF64Max = 0x8e;
170 var kExprF64Abs = 0x8f;
171 var kExprF64Neg = 0x90;
172 var kExprF64CopySign = 0x91;
173 var kExprF64Ceil = 0x92;
174 var kExprF64Floor = 0x93;
175 var kExprF64Trunc = 0x94;
176 var kExprF64NearestInt = 0x95;
177 var kExprF64Sqrt = 0x96;
178 var kExprF64Eq = 0x97;
179 var kExprF64Ne = 0x98;
180 var kExprF64Lt = 0x99;
181 var kExprF64Le = 0x9a;
182 var kExprF64Gt = 0x9b;
183 var kExprF64Ge = 0x9c;
184 var kExprI32SConvertF32 = 0x9d;
185 var kExprI32SConvertF64 = 0x9e;
186 var kExprI32UConvertF32 = 0x9f;
187 var kExprI32UConvertF64 = 0xa0;
188 var kExprI32ConvertI64 = 0xa1;
189 var kExprI64SConvertF32 = 0xa2;
190 var kExprI64SConvertF64 = 0xa3;
191 var kExprI64UConvertF32 = 0xa4;
192 var kExprI64UConvertF64 = 0xa5;
193 var kExprI64SConvertI32 = 0xa6;
194 var kExprI64UConvertI32 = 0xa7;
195 var kExprF32SConvertI32 = 0xa8;
196 var kExprF32UConvertI32 = 0xa9;
197 var kExprF32SConvertI64 = 0xaa;
198 var kExprF32UConvertI64 = 0xab;
199 var kExprF32ConvertF64 = 0xac;
200 var kExprF32ReinterpretI32 = 0xad;
201 var kExprF64SConvertI32 = 0xae;
202 var kExprF64UConvertI32 = 0xaf;
203 var kExprF64SConvertI64 = 0xb0;
204 var kExprF64UConvertI64 = 0xb1;
205 var kExprF64ConvertF32 = 0xb2;
206 var kExprF64ReinterpretI64 = 0xb3;
207 var kExprI32ReinterpretF32 = 0xb4;
208 var kExprI64ReinterpretF64 = 0xb5;
209
210 var kTrapUnreachable = 0;
211 var kTrapMemOutOfBounds = 1;
212 var kTrapDivByZero = 2;
213 var kTrapDivUnrepresentable = 3;
214 var kTrapRemByZero = 4;
215 var kTrapFloatUnrepresentable = 5;
216 var kTrapFuncInvalid = 6;
217 var kTrapFuncSigMismatch = 7;
218
219 var kTrapMsgs = [
220 "unreachable",
221 "memory access out of bounds",
222 "divide by zero",
223 "divide result unrepresentable",
224 "remainder by zero",
225 "integer result unrepresentable",
226 "invalid function",
227 "function signature mismatch"
228 ];
229
230 function assertTraps(trap, code) {
231 var threwException = true;
232 try {
233 if (typeof code === 'function') {
234 code();
235 } else {
236 eval(code);
237 }
238 threwException = false;
239 } catch (e) {
240 assertEquals("string", typeof e);
241 assertEquals(kTrapMsgs[trap], e);
242 // Success.
243 return;
244 }
245 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap] );
246 }
OLDNEW
« no previous file with comments | « test/mjsunit/wasm/verify-module-basic-errors.js ('k') | test/mjsunit/wasm/wasm-object-api.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698