OLD | NEW |
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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 var kExprI32DivS = 0x43; | 132 var kExprI32DivS = 0x43; |
133 var kExprI32DivU = 0x44; | 133 var kExprI32DivU = 0x44; |
134 var kExprI32RemS = 0x45; | 134 var kExprI32RemS = 0x45; |
135 var kExprI32RemU = 0x46; | 135 var kExprI32RemU = 0x46; |
136 var kExprI32And = 0x47; | 136 var kExprI32And = 0x47; |
137 var kExprI32Ior = 0x48; | 137 var kExprI32Ior = 0x48; |
138 var kExprI32Xor = 0x49; | 138 var kExprI32Xor = 0x49; |
139 var kExprI32Shl = 0x4a; | 139 var kExprI32Shl = 0x4a; |
140 var kExprI32ShrU = 0x4b; | 140 var kExprI32ShrU = 0x4b; |
141 var kExprI32ShrS = 0x4c; | 141 var kExprI32ShrS = 0x4c; |
142 var kExprI32Eq = 0x4d; | 142 var kExprI32Ror = 0x4d; |
143 var kExprI32Ne = 0x4e; | 143 var kExprI32Rol = 0x4e; |
144 var kExprI32LtS = 0x4f; | 144 var kExprI32Eq = 0x4f; |
145 var kExprI32LeS = 0x50; | 145 var kExprI32Ne = 0x50; |
146 var kExprI32LtU = 0x51; | 146 var kExprI32LtS = 0x51; |
147 var kExprI32LeU = 0x52; | 147 var kExprI32LeS = 0x52; |
148 var kExprI32GtS = 0x53; | 148 var kExprI32LtU = 0x53; |
149 var kExprI32GeS = 0x54; | 149 var kExprI32LeU = 0x54; |
150 var kExprI32GtU = 0x55; | 150 var kExprI32GtS = 0x55; |
151 var kExprI32GeU = 0x56; | 151 var kExprI32GeS = 0x56; |
152 var kExprI32Clz = 0x57; | 152 var kExprI32GtU = 0x57; |
153 var kExprI32Ctz = 0x58; | 153 var kExprI32GeU = 0x58; |
154 var kExprI32Popcnt = 0x59; | 154 var kExprI32Clz = 0x59; |
155 var kExprI32Eqz = 0x5a; | 155 var kExprI32Ctz = 0x5a; |
156 var kExprI64Add = 0x5b; | 156 var kExprI32Popcnt = 0x5b; |
157 var kExprI64Sub = 0x5c; | 157 var kExprI32Eqz = 0x5c; |
158 var kExprI64Mul = 0x5d; | 158 var kExprI64Add = 0x5d; |
159 var kExprI64DivS = 0x5e; | 159 var kExprI64Sub = 0x5e; |
160 var kExprI64DivU = 0x5f; | 160 var kExprI64Mul = 0x5f; |
161 var kExprI64RemS = 0x60; | 161 var kExprI64DivS = 0x60; |
162 var kExprI64RemU = 0x61; | 162 var kExprI64DivU = 0x61; |
163 var kExprI64And = 0x62; | 163 var kExprI64RemS = 0x62; |
164 var kExprI64Ior = 0x63; | 164 var kExprI64RemU = 0x63; |
165 var kExprI64Xor = 0x64; | 165 var kExprI64And = 0x64; |
166 var kExprI64Shl = 0x65; | 166 var kExprI64Ior = 0x65; |
167 var kExprI64ShrU = 0x66; | 167 var kExprI64Xor = 0x66; |
168 var kExprI64ShrS = 0x67; | 168 var kExprI64Shl = 0x67; |
169 var kExprI64Eq = 0x68; | 169 var kExprI64ShrU = 0x68; |
170 var kExprI64Ne = 0x69; | 170 var kExprI64ShrS = 0x69; |
171 var kExprI64LtS = 0x6a; | 171 var kExprI64Ror = 0x6a; |
172 var kExprI64LeS = 0x6b; | 172 var kExprI64Rol = 0x6b; |
173 var kExprI64LtU = 0x6c; | 173 var kExprI64Eq = 0x6c; |
174 var kExprI64LeU = 0x6d; | 174 var kExprI64Ne = 0x6d; |
175 var kExprI64GtS = 0x6e; | 175 var kExprI64LtS = 0x6e; |
176 var kExprI64GeS = 0x6f; | 176 var kExprI64LeS = 0x6f; |
177 var kExprI64GtU = 0x70; | 177 var kExprI64LtU = 0x70; |
178 var kExprI64GeU = 0x71; | 178 var kExprI64LeU = 0x71; |
179 var kExprI64Clz = 0x72; | 179 var kExprI64GtS = 0x72; |
180 var kExprI64Ctz = 0x73; | 180 var kExprI64GeS = 0x73; |
181 var kExprI64Popcnt = 0x74; | 181 var kExprI64GtU = 0x74; |
182 var kExprF32Add = 0x75; | 182 var kExprI64GeU = 0x75; |
183 var kExprF32Sub = 0x76; | 183 var kExprI64Clz = 0x76; |
184 var kExprF32Mul = 0x77; | 184 var kExprI64Ctz = 0x77; |
185 var kExprF32Div = 0x78; | 185 var kExprI64Popcnt = 0x78; |
186 var kExprF32Min = 0x79; | 186 var kExprF32Add = 0x79; |
187 var kExprF32Max = 0x7a; | 187 var kExprF32Sub = 0x7a; |
188 var kExprF32Abs = 0x7b; | 188 var kExprF32Mul = 0x7b; |
189 var kExprF32Neg = 0x7c; | 189 var kExprF32Div = 0x7c; |
190 var kExprF32CopySign = 0x7d; | 190 var kExprF32Min = 0x7d; |
191 var kExprF32Ceil = 0x7e; | 191 var kExprF32Max = 0x7e; |
192 var kExprF32Floor = 0x7f; | 192 var kExprF32Abs = 0x7f; |
193 var kExprF32Trunc = 0x80; | 193 var kExprF32Neg = 0x80; |
194 var kExprF32NearestInt = 0x81; | 194 var kExprF32CopySign = 0x81; |
195 var kExprF32Sqrt = 0x82; | 195 var kExprF32Ceil = 0x82; |
196 var kExprF32Eq = 0x83; | 196 var kExprF32Floor = 0x83; |
197 var kExprF32Ne = 0x84; | 197 var kExprF32Trunc = 0x84; |
198 var kExprF32Lt = 0x85; | 198 var kExprF32NearestInt = 0x85; |
199 var kExprF32Le = 0x86; | 199 var kExprF32Sqrt = 0x86; |
200 var kExprF32Gt = 0x87; | 200 var kExprF32Eq = 0x87; |
201 var kExprF32Ge = 0x88; | 201 var kExprF32Ne = 0x88; |
202 var kExprF64Add = 0x89; | 202 var kExprF32Lt = 0x89; |
203 var kExprF64Sub = 0x8a; | 203 var kExprF32Le = 0x8a; |
204 var kExprF64Mul = 0x8b; | 204 var kExprF32Gt = 0x8b; |
205 var kExprF64Div = 0x8c; | 205 var kExprF32Ge = 0x8c; |
206 var kExprF64Min = 0x8d; | 206 var kExprF64Add = 0x8d; |
207 var kExprF64Max = 0x8e; | 207 var kExprF64Sub = 0x8e; |
208 var kExprF64Abs = 0x8f; | 208 var kExprF64Mul = 0x8f; |
209 var kExprF64Neg = 0x90; | 209 var kExprF64Div = 0x90; |
210 var kExprF64CopySign = 0x91; | 210 var kExprF64Min = 0x91; |
211 var kExprF64Ceil = 0x92; | 211 var kExprF64Max = 0x92; |
212 var kExprF64Floor = 0x93; | 212 var kExprF64Abs = 0x93; |
213 var kExprF64Trunc = 0x94; | 213 var kExprF64Neg = 0x94; |
214 var kExprF64NearestInt = 0x95; | 214 var kExprF64CopySign = 0x95; |
215 var kExprF64Sqrt = 0x96; | 215 var kExprF64Ceil = 0x96; |
216 var kExprF64Eq = 0x97; | 216 var kExprF64Floor = 0x97; |
217 var kExprF64Ne = 0x98; | 217 var kExprF64Trunc = 0x98; |
218 var kExprF64Lt = 0x99; | 218 var kExprF64NearestInt = 0x99; |
219 var kExprF64Le = 0x9a; | 219 var kExprF64Sqrt = 0x9a; |
220 var kExprF64Gt = 0x9b; | 220 var kExprF64Eq = 0x9b; |
221 var kExprF64Ge = 0x9c; | 221 var kExprF64Ne = 0x9c; |
222 var kExprI32SConvertF32 = 0x9d; | 222 var kExprF64Lt = 0x9d; |
223 var kExprI32SConvertF64 = 0x9e; | 223 var kExprF64Le = 0x9e; |
224 var kExprI32UConvertF32 = 0x9f; | 224 var kExprF64Gt = 0x9f; |
225 var kExprI32UConvertF64 = 0xa0; | 225 var kExprF64Ge = 0xa0; |
226 var kExprI32ConvertI64 = 0xa1; | 226 var kExprI32SConvertF32 = 0xa1; |
227 var kExprI64SConvertF32 = 0xa2; | 227 var kExprI32SConvertF64 = 0xa2; |
228 var kExprI64SConvertF64 = 0xa3; | 228 var kExprI32UConvertF32 = 0xa3; |
229 var kExprI64UConvertF32 = 0xa4; | 229 var kExprI32UConvertF64 = 0xa4; |
230 var kExprI64UConvertF64 = 0xa5; | 230 var kExprI32ConvertI64 = 0xa5; |
231 var kExprI64SConvertI32 = 0xa6; | 231 var kExprI64SConvertF32 = 0xa6; |
232 var kExprI64UConvertI32 = 0xa7; | 232 var kExprI64SConvertF64 = 0xa7; |
233 var kExprF32SConvertI32 = 0xa8; | 233 var kExprI64UConvertF32 = 0xa8; |
234 var kExprF32UConvertI32 = 0xa9; | 234 var kExprI64UConvertF64 = 0xa9; |
235 var kExprF32SConvertI64 = 0xaa; | 235 var kExprI64SConvertI32 = 0xaa; |
236 var kExprF32UConvertI64 = 0xab; | 236 var kExprI64UConvertI32 = 0xab; |
237 var kExprF32ConvertF64 = 0xac; | 237 var kExprF32SConvertI32 = 0xac; |
238 var kExprF32ReinterpretI32 = 0xad; | 238 var kExprF32UConvertI32 = 0xad; |
239 var kExprF64SConvertI32 = 0xae; | 239 var kExprF32SConvertI64 = 0xae; |
240 var kExprF64UConvertI32 = 0xaf; | 240 var kExprF32UConvertI64 = 0xaf; |
241 var kExprF64SConvertI64 = 0xb0; | 241 var kExprF32ConvertF64 = 0xb0; |
242 var kExprF64UConvertI64 = 0xb1; | 242 var kExprF32ReinterpretI32 = 0xb1; |
243 var kExprF64ConvertF32 = 0xb2; | 243 var kExprF64SConvertI32 = 0xb2; |
244 var kExprF64ReinterpretI64 = 0xb3; | 244 var kExprF64UConvertI32 = 0xb3; |
245 var kExprI32ReinterpretF32 = 0xb4; | 245 var kExprF64SConvertI64 = 0xb4; |
246 var kExprI64ReinterpretF64 = 0xb5; | 246 var kExprF64UConvertI64 = 0xb5; |
| 247 var kExprF64ConvertF32 = 0xb6; |
| 248 var kExprF64ReinterpretI64 = 0xb7; |
| 249 var kExprI32ReinterpretF32 = 0xb8; |
| 250 var kExprI64ReinterpretF64 = 0xb9; |
247 | 251 |
248 var kTrapUnreachable = 0; | 252 var kTrapUnreachable = 0; |
249 var kTrapMemOutOfBounds = 1; | 253 var kTrapMemOutOfBounds = 1; |
250 var kTrapDivByZero = 2; | 254 var kTrapDivByZero = 2; |
251 var kTrapDivUnrepresentable = 3; | 255 var kTrapDivUnrepresentable = 3; |
252 var kTrapRemByZero = 4; | 256 var kTrapRemByZero = 4; |
253 var kTrapFloatUnrepresentable = 5; | 257 var kTrapFloatUnrepresentable = 5; |
254 var kTrapFuncInvalid = 6; | 258 var kTrapFuncInvalid = 6; |
255 var kTrapFuncSigMismatch = 7; | 259 var kTrapFuncSigMismatch = 7; |
256 | 260 |
(...skipping 18 matching lines...) Expand all Loading... |
275 } | 279 } |
276 threwException = false; | 280 threwException = false; |
277 } catch (e) { | 281 } catch (e) { |
278 assertEquals("string", typeof e); | 282 assertEquals("string", typeof e); |
279 assertEquals(kTrapMsgs[trap], e); | 283 assertEquals(kTrapMsgs[trap], e); |
280 // Success. | 284 // Success. |
281 return; | 285 return; |
282 } | 286 } |
283 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap]
); | 287 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap]
); |
284 } | 288 } |
OLD | NEW |