OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 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 // Flags: --expose-wasm |
| 6 |
| 7 load("test/mjsunit/wasm/wasm-constants.js"); |
| 8 load("test/mjsunit/wasm/wasm-module-builder.js"); |
| 9 |
| 10 (function() { |
| 11 "use asm"; |
| 12 var builder = new WasmModuleBuilder(); |
| 13 builder.addFunction("regression_648079", kSig_s_v) |
| 14 .addBody([ |
| 15 // locals: |
| 16 0x00, |
| 17 // body: |
| 18 kExprI64RemU, |
| 19 kExprI64Ctz, |
| 20 kExprI64LeU, |
| 21 kExprUnreachable, |
| 22 kExprUnreachable, |
| 23 kExprUnreachable, |
| 24 kExprUnreachable, |
| 25 kExprI64Ctz, |
| 26 kExprI64Ne, |
| 27 kExprI64ShrS, |
| 28 kExprI64GtS, |
| 29 kExprI64RemU, |
| 30 kExprUnreachable, |
| 31 kExprI64RemU, |
| 32 kExprI32Eqz, |
| 33 kExprI64LeU, |
| 34 kExprDrop, |
| 35 kExprF32Add, |
| 36 kExprI64Ior, |
| 37 kExprF32CopySign, |
| 38 kExprI64Ne, |
| 39 kExprI64GeS, |
| 40 kExprUnreachable, |
| 41 kExprF32Trunc, |
| 42 kExprF32Trunc, |
| 43 kExprUnreachable, |
| 44 kExprIf, 10, // @32 |
| 45 kExprBlock, 00, // @34 |
| 46 kExprBr, // depth=109 |
| 47 kExprI64Shl, |
| 48 kExprI64LeU, |
| 49 kExprI64GeS, |
| 50 kExprI64Clz, |
| 51 kExprF32Min, |
| 52 kExprF32Eq, |
| 53 kExprF32Trunc, |
| 54 kExprF32Trunc, |
| 55 kExprF32Trunc, |
| 56 kExprUnreachable, |
| 57 kExprI32Const, |
| 58 kExprUnreachable, |
| 59 kExprBr, // depth=101 |
| 60 kExprF32Div, |
| 61 kExprI64GtU, |
| 62 kExprI64GeS, |
| 63 kExprI64Clz, |
| 64 kExprSelect, |
| 65 kExprI64GtS, |
| 66 kExprI64RemU, |
| 67 kExprI64LeU, |
| 68 kExprI64Shl, |
| 69 kExprI64Ctz, |
| 70 kExprLoop, 01, // @63 i32 |
| 71 kExprElse, // @65 |
| 72 kExprI64LeU, |
| 73 kExprI64RemU, |
| 74 kExprI64Ne, |
| 75 kExprI64GeS, |
| 76 kExprI32Const, |
| 77 kExprI64GtS, |
| 78 kExprI64LoadMem32U, |
| 79 kExprI64Clz, |
| 80 kExprI64Shl, |
| 81 kExprI64Ne, |
| 82 kExprI64ShrS, |
| 83 kExprI64GtS, |
| 84 kExprI64DivU, |
| 85 kExprI64Ne, |
| 86 kExprI64GtS, |
| 87 kExprI64Ne, |
| 88 kExprI64Popcnt, |
| 89 kExprI64DivU, |
| 90 kExprI64DivU, |
| 91 kExprSelect, |
| 92 kExprI64Ctz, |
| 93 kExprI64Popcnt, |
| 94 kExprI64RemU, |
| 95 kExprI64Clz, |
| 96 kExprF64Sub, |
| 97 kExprF32Trunc, |
| 98 kExprF32Trunc, |
| 99 kExprI64RemU, |
| 100 kExprI64Ctz, |
| 101 kExprI64LeU, |
| 102 kExprUnreachable, |
| 103 kExprUnreachable, |
| 104 kExprUnreachable, |
| 105 kExprBrIf, // depth=116 |
| 106 kExprF32Min, |
| 107 kExprI64GtU, |
| 108 kExprBlock, 01, // @107 i32 |
| 109 kExprTeeLocal, |
| 110 kExprBlock, 01, // @111 i32 |
| 111 kExprBlock, 01, // @113 i32 |
| 112 kExprBlock, 01, // @115 i32 |
| 113 kExprBlock, 01, // @117 i32 |
| 114 kExprBlock, 01, // @119 i32 |
| 115 kExprBlock, 01, // @121 i32 |
| 116 kExprBlock, 01, // @123 i32 |
| 117 kExprBlock, 88, // @125 |
| 118 kExprF32Trunc, |
| 119 kExprF32Trunc, |
| 120 kExprF32Trunc, |
| 121 kExprUnreachable, |
| 122 kExprLoop, 40, // @131 |
| 123 kExprUnreachable, |
| 124 kExprUnreachable, |
| 125 kExprI32Add, |
| 126 kExprBlock, 05, // @136 |
| 127 kExprUnreachable, |
| 128 kExprIf, 02, // @139 i64 |
| 129 kExprBlock, 01, // @141 i32 |
| 130 kExprBrIf, // depth=16 |
| 131 kExprLoop, 00, // @145 |
| 132 kExprUnreachable, |
| 133 kExprUnreachable, |
| 134 kExprReturn, |
| 135 kExprUnreachable, |
| 136 kExprUnreachable, |
| 137 kExprUnreachable, |
| 138 kExprI64LoadMem16U, |
| 139 kExprUnreachable, |
| 140 kExprUnreachable, |
| 141 kExprUnreachable, |
| 142 kExprUnreachable, |
| 143 kExprUnreachable, |
| 144 kExprNop, |
| 145 kExprBr, // depth=1 |
| 146 kExprElse, // @164 |
| 147 kExprF32Trunc, |
| 148 kExprI32Add, |
| 149 kExprCallIndirect, // sig #1 |
| 150 kExprUnreachable, |
| 151 kExprUnreachable, |
| 152 kExprUnreachable, |
| 153 kExprBlock, 00, // @172 |
| 154 kExprI64RemU, |
| 155 kExprI64Ctz, |
| 156 kExprI64LeU, |
| 157 kExprUnreachable, |
| 158 kExprUnreachable, |
| 159 kExprUnreachable, |
| 160 kExprUnreachable, |
| 161 kExprUnreachable, |
| 162 kExprDrop, |
| 163 kExprI64Popcnt, |
| 164 kExprF32Min, |
| 165 kExprUnreachable, |
| 166 kExprF64Sub, |
| 167 kExprI32Const, |
| 168 kExprUnreachable, |
| 169 kExprGetLocal, |
| 170 kExprI64LoadMem32U, |
| 171 kExprUnreachable, |
| 172 kExprI64RemU, |
| 173 kExprI32Eqz, |
| 174 kExprI64LeU, |
| 175 kExprDrop, |
| 176 kExprF32Add, |
| 177 kExprI64Ior, |
| 178 kExprF32CopySign, |
| 179 kExprI64Ne, |
| 180 kExprI64GeS, |
| 181 kExprUnreachable, |
| 182 kExprF32Trunc, |
| 183 kExprF32Trunc, |
| 184 kExprUnreachable, |
| 185 kExprIf, 10, // @216 |
| 186 kExprBlock, 00, // @218 |
| 187 kExprBr, // depth=109 |
| 188 kExprI64Shl, |
| 189 kExprI64LeU, |
| 190 kExprI64GeS, |
| 191 kExprI64Clz, |
| 192 kExprF32Min, |
| 193 kExprF32Eq, |
| 194 kExprF32Trunc, |
| 195 kExprF32Trunc, |
| 196 kExprF32Trunc, |
| 197 kExprUnreachable, |
| 198 kExprF64Min, |
| 199 kExprI32Const, |
| 200 kExprBr, // depth=101 |
| 201 kExprF32Div, |
| 202 kExprI64GtU, |
| 203 kExprI64GeS, |
| 204 kExprI64Clz, |
| 205 kExprI64Popcnt, |
| 206 kExprF64Lt, |
| 207 kExprF32Trunc, |
| 208 kExprF32Trunc, |
| 209 kExprF32Trunc, |
| 210 kExprUnreachable, |
| 211 kExprLoop, 01, // @247 i32 |
| 212 kExprElse, // @249 |
| 213 kExprI64LeU, |
| 214 kExprI64RemU, |
| 215 kExprI64Ne, |
| 216 kExprI64GeS, |
| 217 kExprI32Const, |
| 218 kExprBlock, 01, // @256 i32 |
| 219 kExprBlock, 01, // @258 i32 |
| 220 kExprBlock, 01, // @260 i32 |
| 221 kExprBlock, 01, // @262 i3
2 |
| 222 kExprBlock, 01, // @264
i32 |
| 223 kExprF32Ge, |
| 224 kExprF32Trunc, |
| 225 kExprF32Trunc, |
| 226 kExprF32Trunc, |
| 227 kExprUnreachable, |
| 228 kExprLoop, 40, // @271 |
| 229 kExprUnreachable, |
| 230 kExprUnreachable, |
| 231 kExprI32Add, |
| 232 kExprBlock, 01, // @
276 i32 |
| 233 kExprUnreachable, |
| 234 kExprIf, 02, // @2
79 i64 |
| 235 kExprBlock, 00,
// @281 |
| 236 kExprBrIf, //
depth=16 |
| 237 kExprLoop, 00,
// @285 |
| 238 kExprUnreachab
le, |
| 239 kExprUnreachab
le, |
| 240 kExprReturn, |
| 241 kExprUnreachab
le, |
| 242 kExprUnreachab
le, |
| 243 kExprUnreachab
le, |
| 244 kExprI64LoadMe
m16U, |
| 245 kExprUnreachab
le, |
| 246 kExprUnreachab
le, |
| 247 kExprUnreachab
le, |
| 248 kExprUnreachab
le, |
| 249 kExprUnreachab
le, |
| 250 kExprNop, |
| 251 kExprBr, //
depth=1 |
| 252 kExprElse, //
@304 |
| 253 kExprF32Trunc, |
| 254 kExprI32Add, |
| 255 kExprCallIndir
ect, // sig #1 |
| 256 kExprUnreachab
le, |
| 257 kExprUnreachab
le, |
| 258 kExprUnreachab
le, |
| 259 kExprBlock, 00
, // @312 |
| 260 kExprI64RemU
, |
| 261 kExprI64Ctz, |
| 262 kExprI64LeU, |
| 263 kExprUnreach
able, |
| 264 kExprUnreach
able, |
| 265 kExprUnreach
able, |
| 266 kExprDrop, |
| 267 kExprI64Popc
nt, |
| 268 kExprF32Min, |
| 269 kExprUnreach
able, |
| 270 kExprF64Sub, |
| 271 kExprI32Cons
t, |
| 272 kExprUnreach
able, |
| 273 kExprGetLoca
l, |
| 274 kExprI64Load
Mem32U, |
| 275 kExprUnreach
able, |
| 276 kExprUnreach
able, |
| 277 kExprNop, |
| 278 kExprBr, /
/ depth=1 |
| 279 kExprElse, /
/ @348 |
| 280 kExprF32Trun
c, |
| 281 kExprI32Add, |
| 282 kExprCallInd
irect, // sig #1 |
| 283 kExprUnreach
able, |
| 284 kExprUnreach
able, |
| 285 kExprUnreach
able, |
| 286 kExprBlock,
00, // @356 |
| 287 kExprI64RemU
, |
| 288 kExprI64Ctz, |
| 289 kExprI64LeU, |
| 290 kExprUnreach
able, |
| 291 kExprUnreach
able, |
| 292 kExprUnreach
able, |
| 293 kExprDrop, |
| 294 kExprI64Popc
nt, |
| 295 kExprF32Min, |
| 296 kExprUnreach
able, |
| 297 kExprF64Sub, |
| 298 kExprI32Cons
t, |
| 299 kExprUnreach
able, |
| 300 kExprGetLoca
l, |
| 301 kExprI64Load
Mem32U, |
| 302 kExprF64Min, |
| 303 kExprF64Min, |
| 304 kExprF64Min, |
| 305 kExprF64Min, |
| 306 kExprF64Min, |
| 307 kExprF32Trun
c, |
| 308 kExprF32Trun
c, |
| 309 kExprF32Trun
c, |
| 310 kExprUnreach
able, |
| 311 kExprF64Min, |
| 312 kExprF64Min, |
| 313 kExprF64Min, |
| 314 kExprF64Min, |
| 315 kExprF64Min, |
| 316 kExprF64Min, |
| 317 kExprF64Min, |
| 318 kExprF64Min, |
| 319 kExprF64Min, |
| 320 kExprF64Min, |
| 321 ]) |
| 322 .exportFunc(); |
| 323 assertThrows(function() { builder.instantiate(); }); |
| 324 })(); |
OLD | NEW |