atomic.wast.js (55309B)
1 /* Copyright 2021 Mozilla Foundation 2 * 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 // ./test/core/atomic.wast 17 18 // ./test/core/atomic.wast:3 19 let $0 = instantiate(`(module 20 (memory 1 1 shared) 21 22 (func (export "init") (param \$value i64) (i64.store (i32.const 0) (local.get \$value))) 23 24 (func (export "i32.atomic.load") (param \$addr i32) (result i32) (i32.atomic.load (local.get \$addr))) 25 (func (export "i64.atomic.load") (param \$addr i32) (result i64) (i64.atomic.load (local.get \$addr))) 26 (func (export "i32.atomic.load8_u") (param \$addr i32) (result i32) (i32.atomic.load8_u (local.get \$addr))) 27 (func (export "i32.atomic.load16_u") (param \$addr i32) (result i32) (i32.atomic.load16_u (local.get \$addr))) 28 (func (export "i64.atomic.load8_u") (param \$addr i32) (result i64) (i64.atomic.load8_u (local.get \$addr))) 29 (func (export "i64.atomic.load16_u") (param \$addr i32) (result i64) (i64.atomic.load16_u (local.get \$addr))) 30 (func (export "i64.atomic.load32_u") (param \$addr i32) (result i64) (i64.atomic.load32_u (local.get \$addr))) 31 32 (func (export "i32.atomic.store") (param \$addr i32) (param \$value i32) (i32.atomic.store (local.get \$addr) (local.get \$value))) 33 (func (export "i64.atomic.store") (param \$addr i32) (param \$value i64) (i64.atomic.store (local.get \$addr) (local.get \$value))) 34 (func (export "i32.atomic.store8") (param \$addr i32) (param \$value i32) (i32.atomic.store8 (local.get \$addr) (local.get \$value))) 35 (func (export "i32.atomic.store16") (param \$addr i32) (param \$value i32) (i32.atomic.store16 (local.get \$addr) (local.get \$value))) 36 (func (export "i64.atomic.store8") (param \$addr i32) (param \$value i64) (i64.atomic.store8 (local.get \$addr) (local.get \$value))) 37 (func (export "i64.atomic.store16") (param \$addr i32) (param \$value i64) (i64.atomic.store16 (local.get \$addr) (local.get \$value))) 38 (func (export "i64.atomic.store32") (param \$addr i32) (param \$value i64) (i64.atomic.store32 (local.get \$addr) (local.get \$value))) 39 40 (func (export "i32.atomic.rmw.add") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw.add (local.get \$addr) (local.get \$value))) 41 (func (export "i64.atomic.rmw.add") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw.add (local.get \$addr) (local.get \$value))) 42 (func (export "i32.atomic.rmw8.add_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw8.add_u (local.get \$addr) (local.get \$value))) 43 (func (export "i32.atomic.rmw16.add_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw16.add_u (local.get \$addr) (local.get \$value))) 44 (func (export "i64.atomic.rmw8.add_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw8.add_u (local.get \$addr) (local.get \$value))) 45 (func (export "i64.atomic.rmw16.add_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw16.add_u (local.get \$addr) (local.get \$value))) 46 (func (export "i64.atomic.rmw32.add_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw32.add_u (local.get \$addr) (local.get \$value))) 47 48 (func (export "i32.atomic.rmw.sub") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw.sub (local.get \$addr) (local.get \$value))) 49 (func (export "i64.atomic.rmw.sub") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw.sub (local.get \$addr) (local.get \$value))) 50 (func (export "i32.atomic.rmw8.sub_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw8.sub_u (local.get \$addr) (local.get \$value))) 51 (func (export "i32.atomic.rmw16.sub_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw16.sub_u (local.get \$addr) (local.get \$value))) 52 (func (export "i64.atomic.rmw8.sub_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw8.sub_u (local.get \$addr) (local.get \$value))) 53 (func (export "i64.atomic.rmw16.sub_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw16.sub_u (local.get \$addr) (local.get \$value))) 54 (func (export "i64.atomic.rmw32.sub_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw32.sub_u (local.get \$addr) (local.get \$value))) 55 56 (func (export "i32.atomic.rmw.and") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw.and (local.get \$addr) (local.get \$value))) 57 (func (export "i64.atomic.rmw.and") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw.and (local.get \$addr) (local.get \$value))) 58 (func (export "i32.atomic.rmw8.and_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw8.and_u (local.get \$addr) (local.get \$value))) 59 (func (export "i32.atomic.rmw16.and_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw16.and_u (local.get \$addr) (local.get \$value))) 60 (func (export "i64.atomic.rmw8.and_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw8.and_u (local.get \$addr) (local.get \$value))) 61 (func (export "i64.atomic.rmw16.and_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw16.and_u (local.get \$addr) (local.get \$value))) 62 (func (export "i64.atomic.rmw32.and_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw32.and_u (local.get \$addr) (local.get \$value))) 63 64 (func (export "i32.atomic.rmw.or") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw.or (local.get \$addr) (local.get \$value))) 65 (func (export "i64.atomic.rmw.or") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw.or (local.get \$addr) (local.get \$value))) 66 (func (export "i32.atomic.rmw8.or_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw8.or_u (local.get \$addr) (local.get \$value))) 67 (func (export "i32.atomic.rmw16.or_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw16.or_u (local.get \$addr) (local.get \$value))) 68 (func (export "i64.atomic.rmw8.or_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw8.or_u (local.get \$addr) (local.get \$value))) 69 (func (export "i64.atomic.rmw16.or_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw16.or_u (local.get \$addr) (local.get \$value))) 70 (func (export "i64.atomic.rmw32.or_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw32.or_u (local.get \$addr) (local.get \$value))) 71 72 (func (export "i32.atomic.rmw.xor") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw.xor (local.get \$addr) (local.get \$value))) 73 (func (export "i64.atomic.rmw.xor") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw.xor (local.get \$addr) (local.get \$value))) 74 (func (export "i32.atomic.rmw8.xor_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw8.xor_u (local.get \$addr) (local.get \$value))) 75 (func (export "i32.atomic.rmw16.xor_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw16.xor_u (local.get \$addr) (local.get \$value))) 76 (func (export "i64.atomic.rmw8.xor_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw8.xor_u (local.get \$addr) (local.get \$value))) 77 (func (export "i64.atomic.rmw16.xor_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw16.xor_u (local.get \$addr) (local.get \$value))) 78 (func (export "i64.atomic.rmw32.xor_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw32.xor_u (local.get \$addr) (local.get \$value))) 79 80 (func (export "i32.atomic.rmw.xchg") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw.xchg (local.get \$addr) (local.get \$value))) 81 (func (export "i64.atomic.rmw.xchg") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw.xchg (local.get \$addr) (local.get \$value))) 82 (func (export "i32.atomic.rmw8.xchg_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw8.xchg_u (local.get \$addr) (local.get \$value))) 83 (func (export "i32.atomic.rmw16.xchg_u") (param \$addr i32) (param \$value i32) (result i32) (i32.atomic.rmw16.xchg_u (local.get \$addr) (local.get \$value))) 84 (func (export "i64.atomic.rmw8.xchg_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw8.xchg_u (local.get \$addr) (local.get \$value))) 85 (func (export "i64.atomic.rmw16.xchg_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw16.xchg_u (local.get \$addr) (local.get \$value))) 86 (func (export "i64.atomic.rmw32.xchg_u") (param \$addr i32) (param \$value i64) (result i64) (i64.atomic.rmw32.xchg_u (local.get \$addr) (local.get \$value))) 87 88 (func (export "i32.atomic.rmw.cmpxchg") (param \$addr i32) (param \$expected i32) (param \$value i32) (result i32) (i32.atomic.rmw.cmpxchg (local.get \$addr) (local.get \$expected) (local.get \$value))) 89 (func (export "i64.atomic.rmw.cmpxchg") (param \$addr i32) (param \$expected i64) (param \$value i64) (result i64) (i64.atomic.rmw.cmpxchg (local.get \$addr) (local.get \$expected) (local.get \$value))) 90 (func (export "i32.atomic.rmw8.cmpxchg_u") (param \$addr i32) (param \$expected i32) (param \$value i32) (result i32) (i32.atomic.rmw8.cmpxchg_u (local.get \$addr) (local.get \$expected) (local.get \$value))) 91 (func (export "i32.atomic.rmw16.cmpxchg_u") (param \$addr i32) (param \$expected i32) (param \$value i32) (result i32) (i32.atomic.rmw16.cmpxchg_u (local.get \$addr) (local.get \$expected) (local.get \$value))) 92 (func (export "i64.atomic.rmw8.cmpxchg_u") (param \$addr i32) (param \$expected i64) (param \$value i64) (result i64) (i64.atomic.rmw8.cmpxchg_u (local.get \$addr) (local.get \$expected) (local.get \$value))) 93 (func (export "i64.atomic.rmw16.cmpxchg_u") (param \$addr i32) (param \$expected i64) (param \$value i64) (result i64) (i64.atomic.rmw16.cmpxchg_u (local.get \$addr) (local.get \$expected) (local.get \$value))) 94 (func (export "i64.atomic.rmw32.cmpxchg_u") (param \$addr i32) (param \$expected i64) (param \$value i64) (result i64) (i64.atomic.rmw32.cmpxchg_u (local.get \$addr) (local.get \$expected) (local.get \$value))) 95 96 )`); 97 98 // ./test/core/atomic.wast:84 99 invoke($0, `init`, [506097522914230528n]); 100 101 // ./test/core/atomic.wast:86 102 assert_return(() => invoke($0, `i32.atomic.load`, [0]), [value("i32", 50462976)]); 103 104 // ./test/core/atomic.wast:87 105 assert_return(() => invoke($0, `i32.atomic.load`, [4]), [value("i32", 117835012)]); 106 107 // ./test/core/atomic.wast:89 108 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 506097522914230528n)]); 109 110 // ./test/core/atomic.wast:91 111 assert_return(() => invoke($0, `i32.atomic.load8_u`, [0]), [value("i32", 0)]); 112 113 // ./test/core/atomic.wast:92 114 assert_return(() => invoke($0, `i32.atomic.load8_u`, [5]), [value("i32", 5)]); 115 116 // ./test/core/atomic.wast:94 117 assert_return(() => invoke($0, `i32.atomic.load16_u`, [0]), [value("i32", 256)]); 118 119 // ./test/core/atomic.wast:95 120 assert_return(() => invoke($0, `i32.atomic.load16_u`, [6]), [value("i32", 1798)]); 121 122 // ./test/core/atomic.wast:97 123 assert_return(() => invoke($0, `i64.atomic.load8_u`, [0]), [value("i64", 0n)]); 124 125 // ./test/core/atomic.wast:98 126 assert_return(() => invoke($0, `i64.atomic.load8_u`, [5]), [value("i64", 5n)]); 127 128 // ./test/core/atomic.wast:100 129 assert_return(() => invoke($0, `i64.atomic.load16_u`, [0]), [value("i64", 256n)]); 130 131 // ./test/core/atomic.wast:101 132 assert_return(() => invoke($0, `i64.atomic.load16_u`, [6]), [value("i64", 1798n)]); 133 134 // ./test/core/atomic.wast:103 135 assert_return(() => invoke($0, `i64.atomic.load32_u`, [0]), [value("i64", 50462976n)]); 136 137 // ./test/core/atomic.wast:104 138 assert_return(() => invoke($0, `i64.atomic.load32_u`, [4]), [value("i64", 117835012n)]); 139 140 // ./test/core/atomic.wast:108 141 invoke($0, `init`, [0n]); 142 143 // ./test/core/atomic.wast:110 144 assert_return(() => invoke($0, `i32.atomic.store`, [0, -1122868]), []); 145 146 // ./test/core/atomic.wast:111 147 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 4293844428n)]); 148 149 // ./test/core/atomic.wast:113 150 assert_return(() => invoke($0, `i64.atomic.store`, [0, 81985529216486895n]), []); 151 152 // ./test/core/atomic.wast:114 153 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 81985529216486895n)]); 154 155 // ./test/core/atomic.wast:116 156 assert_return(() => invoke($0, `i32.atomic.store8`, [1, 66]), []); 157 158 // ./test/core/atomic.wast:117 159 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 81985529216451311n)]); 160 161 // ./test/core/atomic.wast:119 162 assert_return(() => invoke($0, `i32.atomic.store16`, [4, 34884]), []); 163 164 // ./test/core/atomic.wast:120 165 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 82059046171656943n)]); 166 167 // ./test/core/atomic.wast:122 168 assert_return(() => invoke($0, `i64.atomic.store8`, [1, 153n]), []); 169 170 // ./test/core/atomic.wast:123 171 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 82059046171679215n)]); 172 173 // ./test/core/atomic.wast:125 174 assert_return(() => invoke($0, `i64.atomic.store16`, [4, 51966n]), []); 175 176 // ./test/core/atomic.wast:126 177 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 82132412803029487n)]); 178 179 // ./test/core/atomic.wast:128 180 assert_return(() => invoke($0, `i64.atomic.store32`, [4, 3735928559n]), []); 181 182 // ./test/core/atomic.wast:129 183 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", -2401053090302420497n)]); 184 185 // ./test/core/atomic.wast:133 186 invoke($0, `init`, [1229782938247303441n]); 187 188 // ./test/core/atomic.wast:134 189 assert_return(() => invoke($0, `i32.atomic.rmw.add`, [0, 305419896]), [value("i32", 286331153)]); 190 191 // ./test/core/atomic.wast:135 192 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938552723337n)]); 193 194 // ./test/core/atomic.wast:137 195 invoke($0, `init`, [1229782938247303441n]); 196 197 // ./test/core/atomic.wast:138 198 assert_return( 199 () => invoke($0, `i64.atomic.rmw.add`, [0, 72340172854919682n]), 200 [value("i64", 1229782938247303441n)], 201 ); 202 203 // ./test/core/atomic.wast:139 204 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1302123111102223123n)]); 205 206 // ./test/core/atomic.wast:141 207 invoke($0, `init`, [1229782938247303441n]); 208 209 // ./test/core/atomic.wast:142 210 assert_return(() => invoke($0, `i32.atomic.rmw8.add_u`, [0, -842150451]), [value("i32", 17)]); 211 212 // ./test/core/atomic.wast:143 213 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303646n)]); 214 215 // ./test/core/atomic.wast:145 216 invoke($0, `init`, [1229782938247303441n]); 217 218 // ./test/core/atomic.wast:146 219 assert_return(() => invoke($0, `i32.atomic.rmw16.add_u`, [0, -889271554]), [value("i32", 4369)]); 220 221 // ./test/core/atomic.wast:147 222 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247355407n)]); 223 224 // ./test/core/atomic.wast:149 225 invoke($0, `init`, [1229782938247303441n]); 226 227 // ./test/core/atomic.wast:150 228 assert_return(() => invoke($0, `i64.atomic.rmw8.add_u`, [0, 4774451407313060418n]), [value("i64", 17n)]); 229 230 // ./test/core/atomic.wast:151 231 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303507n)]); 232 233 // ./test/core/atomic.wast:153 234 invoke($0, `init`, [1229782938247303441n]); 235 236 // ./test/core/atomic.wast:154 237 assert_return( 238 () => invoke($0, `i64.atomic.rmw16.add_u`, [0, -4688318750159552785n]), 239 [value("i64", 4369n)], 240 ); 241 242 // ./test/core/atomic.wast:155 243 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247352320n)]); 244 245 // ./test/core/atomic.wast:157 246 invoke($0, `init`, [1229782938247303441n]); 247 248 // ./test/core/atomic.wast:158 249 assert_return( 250 () => invoke($0, `i64.atomic.rmw32.add_u`, [0, -3838290751524198683n]), 251 [value("i64", 286331153n)], 252 ); 253 254 // ./test/core/atomic.wast:159 255 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782941648599030n)]); 256 257 // ./test/core/atomic.wast:163 258 invoke($0, `init`, [1229782938247303441n]); 259 260 // ./test/core/atomic.wast:164 261 assert_return(() => invoke($0, `i32.atomic.rmw.sub`, [0, 305419896]), [value("i32", 286331153)]); 262 263 // ./test/core/atomic.wast:165 264 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782942236850841n)]); 265 266 // ./test/core/atomic.wast:167 267 invoke($0, `init`, [1229782938247303441n]); 268 269 // ./test/core/atomic.wast:168 270 assert_return( 271 () => invoke($0, `i64.atomic.rmw.sub`, [0, 72340172854919682n]), 272 [value("i64", 1229782938247303441n)], 273 ); 274 275 // ./test/core/atomic.wast:169 276 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1157442765392383759n)]); 277 278 // ./test/core/atomic.wast:171 279 invoke($0, `init`, [1229782938247303441n]); 280 281 // ./test/core/atomic.wast:172 282 assert_return(() => invoke($0, `i32.atomic.rmw8.sub_u`, [0, -842150451]), [value("i32", 17)]); 283 284 // ./test/core/atomic.wast:173 285 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303492n)]); 286 287 // ./test/core/atomic.wast:175 288 invoke($0, `init`, [1229782938247303441n]); 289 290 // ./test/core/atomic.wast:176 291 assert_return(() => invoke($0, `i32.atomic.rmw16.sub_u`, [0, -889271554]), [value("i32", 4369)]); 292 293 // ./test/core/atomic.wast:177 294 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247317011n)]); 295 296 // ./test/core/atomic.wast:179 297 invoke($0, `init`, [1229782938247303441n]); 298 299 // ./test/core/atomic.wast:180 300 assert_return(() => invoke($0, `i64.atomic.rmw8.sub_u`, [0, 4774451407313060418n]), [value("i64", 17n)]); 301 302 // ./test/core/atomic.wast:181 303 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303631n)]); 304 305 // ./test/core/atomic.wast:183 306 invoke($0, `init`, [1229782938247303441n]); 307 308 // ./test/core/atomic.wast:184 309 assert_return( 310 () => invoke($0, `i64.atomic.rmw16.sub_u`, [0, -4688318750159552785n]), 311 [value("i64", 4369n)], 312 ); 313 314 // ./test/core/atomic.wast:185 315 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247320098n)]); 316 317 // ./test/core/atomic.wast:187 318 invoke($0, `init`, [1229782938247303441n]); 319 320 // ./test/core/atomic.wast:188 321 assert_return( 322 () => invoke($0, `i64.atomic.rmw32.sub_u`, [0, -3838290751524198683n]), 323 [value("i64", 286331153n)], 324 ); 325 326 // ./test/core/atomic.wast:189 327 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782939140975148n)]); 328 329 // ./test/core/atomic.wast:193 330 invoke($0, `init`, [1229782938247303441n]); 331 332 // ./test/core/atomic.wast:194 333 assert_return(() => invoke($0, `i32.atomic.rmw.and`, [0, 305419896]), [value("i32", 286331153)]); 334 335 // ./test/core/atomic.wast:195 336 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938230460432n)]); 337 338 // ./test/core/atomic.wast:197 339 invoke($0, `init`, [1229782938247303441n]); 340 341 // ./test/core/atomic.wast:198 342 assert_return( 343 () => invoke($0, `i64.atomic.rmw.and`, [0, 72340172854919682n]), 344 [value("i64", 1229782938247303441n)], 345 ); 346 347 // ./test/core/atomic.wast:199 348 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 72340172821233664n)]); 349 350 // ./test/core/atomic.wast:201 351 invoke($0, `init`, [1229782938247303441n]); 352 353 // ./test/core/atomic.wast:202 354 assert_return(() => invoke($0, `i32.atomic.rmw8.and_u`, [0, -842150451]), [value("i32", 17)]); 355 356 // ./test/core/atomic.wast:203 357 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303425n)]); 358 359 // ./test/core/atomic.wast:205 360 invoke($0, `init`, [1229782938247303441n]); 361 362 // ./test/core/atomic.wast:206 363 assert_return(() => invoke($0, `i32.atomic.rmw16.and_u`, [0, -889271554]), [value("i32", 4369)]); 364 365 // ./test/core/atomic.wast:207 366 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247299088n)]); 367 368 // ./test/core/atomic.wast:209 369 invoke($0, `init`, [1229782938247303441n]); 370 371 // ./test/core/atomic.wast:210 372 assert_return(() => invoke($0, `i64.atomic.rmw8.and_u`, [0, 4774451407313060418n]), [value("i64", 17n)]); 373 374 // ./test/core/atomic.wast:211 375 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303424n)]); 376 377 // ./test/core/atomic.wast:213 378 invoke($0, `init`, [1229782938247303441n]); 379 380 // ./test/core/atomic.wast:214 381 assert_return( 382 () => invoke($0, `i64.atomic.rmw16.and_u`, [0, -4688318750159552785n]), 383 [value("i64", 4369n)], 384 ); 385 386 // ./test/core/atomic.wast:215 387 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303169n)]); 388 389 // ./test/core/atomic.wast:217 390 invoke($0, `init`, [1229782938247303441n]); 391 392 // ./test/core/atomic.wast:218 393 assert_return( 394 () => invoke($0, `i64.atomic.rmw32.and_u`, [0, -3838290751524198683n]), 395 [value("i64", 286331153n)], 396 ); 397 398 // ./test/core/atomic.wast:219 399 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782937962086401n)]); 400 401 // ./test/core/atomic.wast:223 402 invoke($0, `init`, [1229782938247303441n]); 403 404 // ./test/core/atomic.wast:224 405 assert_return(() => invoke($0, `i32.atomic.rmw.or`, [0, 305419896]), [value("i32", 286331153)]); 406 407 // ./test/core/atomic.wast:225 408 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938283235193n)]); 409 410 // ./test/core/atomic.wast:227 411 invoke($0, `init`, [1229782938247303441n]); 412 413 // ./test/core/atomic.wast:228 414 assert_return( 415 () => invoke($0, `i64.atomic.rmw.or`, [0, 72340172854919682n]), 416 [value("i64", 1229782938247303441n)], 417 ); 418 419 // ./test/core/atomic.wast:229 420 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938280989459n)]); 421 422 // ./test/core/atomic.wast:231 423 invoke($0, `init`, [1229782938247303441n]); 424 425 // ./test/core/atomic.wast:232 426 assert_return(() => invoke($0, `i32.atomic.rmw8.or_u`, [0, -842150451]), [value("i32", 17)]); 427 428 // ./test/core/atomic.wast:233 429 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303645n)]); 430 431 // ./test/core/atomic.wast:235 432 invoke($0, `init`, [1229782938247303441n]); 433 434 // ./test/core/atomic.wast:236 435 assert_return(() => invoke($0, `i32.atomic.rmw16.or_u`, [0, -889271554]), [value("i32", 4369)]); 436 437 // ./test/core/atomic.wast:237 438 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247355391n)]); 439 440 // ./test/core/atomic.wast:239 441 invoke($0, `init`, [1229782938247303441n]); 442 443 // ./test/core/atomic.wast:240 444 assert_return(() => invoke($0, `i64.atomic.rmw8.or_u`, [0, 4774451407313060418n]), [value("i64", 17n)]); 445 446 // ./test/core/atomic.wast:241 447 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303507n)]); 448 449 // ./test/core/atomic.wast:243 450 invoke($0, `init`, [1229782938247303441n]); 451 452 // ./test/core/atomic.wast:244 453 assert_return( 454 () => invoke($0, `i64.atomic.rmw16.or_u`, [0, -4688318750159552785n]), 455 [value("i64", 4369n)], 456 ); 457 458 // ./test/core/atomic.wast:245 459 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247348223n)]); 460 461 // ./test/core/atomic.wast:247 462 invoke($0, `init`, [1229782938247303441n]); 463 464 // ./test/core/atomic.wast:248 465 assert_return( 466 () => invoke($0, `i64.atomic.rmw32.or_u`, [0, -3838290751524198683n]), 467 [value("i64", 286331153n)], 468 ); 469 470 // ./test/core/atomic.wast:249 471 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782941647484917n)]); 472 473 // ./test/core/atomic.wast:253 474 invoke($0, `init`, [1229782938247303441n]); 475 476 // ./test/core/atomic.wast:254 477 assert_return(() => invoke($0, `i32.atomic.rmw.xor`, [0, 305419896]), [value("i32", 286331153)]); 478 479 // ./test/core/atomic.wast:255 480 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938013747049n)]); 481 482 // ./test/core/atomic.wast:257 483 invoke($0, `init`, [1229782938247303441n]); 484 485 // ./test/core/atomic.wast:258 486 assert_return( 487 () => invoke($0, `i64.atomic.rmw.xor`, [0, 72340172854919682n]), 488 [value("i64", 1229782938247303441n)], 489 ); 490 491 // ./test/core/atomic.wast:259 492 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1157442765459755795n)]); 493 494 // ./test/core/atomic.wast:261 495 invoke($0, `init`, [1229782938247303441n]); 496 497 // ./test/core/atomic.wast:262 498 assert_return(() => invoke($0, `i32.atomic.rmw8.xor_u`, [0, -842150451]), [value("i32", 17)]); 499 500 // ./test/core/atomic.wast:263 501 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303644n)]); 502 503 // ./test/core/atomic.wast:265 504 invoke($0, `init`, [1229782938247303441n]); 505 506 // ./test/core/atomic.wast:266 507 assert_return(() => invoke($0, `i32.atomic.rmw16.xor_u`, [0, -889271554]), [value("i32", 4369)]); 508 509 // ./test/core/atomic.wast:267 510 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247355375n)]); 511 512 // ./test/core/atomic.wast:269 513 invoke($0, `init`, [1229782938247303441n]); 514 515 // ./test/core/atomic.wast:270 516 assert_return(() => invoke($0, `i64.atomic.rmw8.xor_u`, [0, 4774451407313060418n]), [value("i64", 17n)]); 517 518 // ./test/core/atomic.wast:271 519 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303507n)]); 520 521 // ./test/core/atomic.wast:273 522 invoke($0, `init`, [1229782938247303441n]); 523 524 // ./test/core/atomic.wast:274 525 assert_return( 526 () => invoke($0, `i64.atomic.rmw16.xor_u`, [0, -4688318750159552785n]), 527 [value("i64", 4369n)], 528 ); 529 530 // ./test/core/atomic.wast:275 531 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247344126n)]); 532 533 // ./test/core/atomic.wast:277 534 invoke($0, `init`, [1229782938247303441n]); 535 536 // ./test/core/atomic.wast:278 537 assert_return( 538 () => invoke($0, `i64.atomic.rmw32.xor_u`, [0, -3838290751524198683n]), 539 [value("i64", 286331153n)], 540 ); 541 542 // ./test/core/atomic.wast:279 543 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782941646370804n)]); 544 545 // ./test/core/atomic.wast:283 546 invoke($0, `init`, [1229782938247303441n]); 547 548 // ./test/core/atomic.wast:284 549 assert_return(() => invoke($0, `i32.atomic.rmw.xchg`, [0, 305419896]), [value("i32", 286331153)]); 550 551 // ./test/core/atomic.wast:285 552 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938266392184n)]); 553 554 // ./test/core/atomic.wast:287 555 invoke($0, `init`, [1229782938247303441n]); 556 557 // ./test/core/atomic.wast:288 558 assert_return( 559 () => invoke($0, `i64.atomic.rmw.xchg`, [0, 72340172854919682n]), 560 [value("i64", 1229782938247303441n)], 561 ); 562 563 // ./test/core/atomic.wast:289 564 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 72340172854919682n)]); 565 566 // ./test/core/atomic.wast:291 567 invoke($0, `init`, [1229782938247303441n]); 568 569 // ./test/core/atomic.wast:292 570 assert_return(() => invoke($0, `i32.atomic.rmw8.xchg_u`, [0, -842150451]), [value("i32", 17)]); 571 572 // ./test/core/atomic.wast:293 573 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303629n)]); 574 575 // ./test/core/atomic.wast:295 576 invoke($0, `init`, [1229782938247303441n]); 577 578 // ./test/core/atomic.wast:296 579 assert_return(() => invoke($0, `i32.atomic.rmw16.xchg_u`, [0, -889271554]), [value("i32", 4369)]); 580 581 // ./test/core/atomic.wast:297 582 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247351038n)]); 583 584 // ./test/core/atomic.wast:299 585 invoke($0, `init`, [1229782938247303441n]); 586 587 // ./test/core/atomic.wast:300 588 assert_return( 589 () => invoke($0, `i64.atomic.rmw8.xchg_u`, [0, 4774451407313060418n]), 590 [value("i64", 17n)], 591 ); 592 593 // ./test/core/atomic.wast:301 594 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303490n)]); 595 596 // ./test/core/atomic.wast:303 597 invoke($0, `init`, [1229782938247303441n]); 598 599 // ./test/core/atomic.wast:304 600 assert_return( 601 () => invoke($0, `i64.atomic.rmw16.xchg_u`, [0, -4688318750159552785n]), 602 [value("i64", 4369n)], 603 ); 604 605 // ./test/core/atomic.wast:305 606 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247347951n)]); 607 608 // ./test/core/atomic.wast:307 609 invoke($0, `init`, [1229782938247303441n]); 610 611 // ./test/core/atomic.wast:308 612 assert_return( 613 () => invoke($0, `i64.atomic.rmw32.xchg_u`, [0, -3838290751524198683n]), 614 [value("i64", 286331153n)], 615 ); 616 617 // ./test/core/atomic.wast:309 618 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782941362267877n)]); 619 620 // ./test/core/atomic.wast:313 621 invoke($0, `init`, [1229782938247303441n]); 622 623 // ./test/core/atomic.wast:314 624 assert_return(() => invoke($0, `i32.atomic.rmw.cmpxchg`, [0, 0, 305419896]), [value("i32", 286331153)]); 625 626 // ./test/core/atomic.wast:315 627 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 628 629 // ./test/core/atomic.wast:317 630 invoke($0, `init`, [1229782938247303441n]); 631 632 // ./test/core/atomic.wast:318 633 assert_return( 634 () => invoke($0, `i64.atomic.rmw.cmpxchg`, [0, 0n, 72340172854919682n]), 635 [value("i64", 1229782938247303441n)], 636 ); 637 638 // ./test/core/atomic.wast:319 639 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 640 641 // ./test/core/atomic.wast:321 642 invoke($0, `init`, [1229782938247303441n]); 643 644 // ./test/core/atomic.wast:322 645 assert_return(() => invoke($0, `i32.atomic.rmw8.cmpxchg_u`, [0, 0, -842150451]), [value("i32", 17)]); 646 647 // ./test/core/atomic.wast:323 648 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 649 650 // ./test/core/atomic.wast:325 651 invoke($0, `init`, [1229782938247303441n]); 652 653 // ./test/core/atomic.wast:326 654 assert_return( 655 () => invoke($0, `i32.atomic.rmw8.cmpxchg_u`, [0, 286331153, -842150451]), 656 [value("i32", 17)], 657 ); 658 659 // ./test/core/atomic.wast:327 660 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303629n)]); 661 662 // ./test/core/atomic.wast:329 663 invoke($0, `init`, [1229782938247303441n]); 664 665 // ./test/core/atomic.wast:330 666 assert_return(() => invoke($0, `i32.atomic.rmw16.cmpxchg_u`, [0, 0, -889271554]), [value("i32", 4369)]); 667 668 // ./test/core/atomic.wast:331 669 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 670 671 // ./test/core/atomic.wast:333 672 invoke($0, `init`, [1229782938247303441n]); 673 674 // ./test/core/atomic.wast:334 675 assert_return( 676 () => invoke($0, `i32.atomic.rmw16.cmpxchg_u`, [0, 286331153, -889271554]), 677 [value("i32", 4369)], 678 ); 679 680 // ./test/core/atomic.wast:335 681 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247351038n)]); 682 683 // ./test/core/atomic.wast:337 684 invoke($0, `init`, [1229782938247303441n]); 685 686 // ./test/core/atomic.wast:338 687 assert_return( 688 () => invoke($0, `i64.atomic.rmw8.cmpxchg_u`, [0, 0n, 4774451407313060418n]), 689 [value("i64", 17n)], 690 ); 691 692 // ./test/core/atomic.wast:339 693 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 694 695 // ./test/core/atomic.wast:341 696 invoke($0, `init`, [1229782938247303441n]); 697 698 // ./test/core/atomic.wast:342 699 assert_return( 700 () => invoke($0, `i64.atomic.rmw8.cmpxchg_u`, [ 701 0, 702 1229782938247303441n, 703 4774451407313060418n, 704 ]), 705 [value("i64", 17n)], 706 ); 707 708 // ./test/core/atomic.wast:343 709 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303490n)]); 710 711 // ./test/core/atomic.wast:345 712 invoke($0, `init`, [1229782938247303441n]); 713 714 // ./test/core/atomic.wast:346 715 assert_return( 716 () => invoke($0, `i64.atomic.rmw16.cmpxchg_u`, [0, 0n, -4688318750159552785n]), 717 [value("i64", 4369n)], 718 ); 719 720 // ./test/core/atomic.wast:347 721 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 722 723 // ./test/core/atomic.wast:349 724 invoke($0, `init`, [1229782938247303441n]); 725 726 // ./test/core/atomic.wast:350 727 assert_return( 728 () => invoke($0, `i64.atomic.rmw16.cmpxchg_u`, [ 729 0, 730 1229782938247303441n, 731 -4688318750159552785n, 732 ]), 733 [value("i64", 4369n)], 734 ); 735 736 // ./test/core/atomic.wast:351 737 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247347951n)]); 738 739 // ./test/core/atomic.wast:353 740 invoke($0, `init`, [1229782938247303441n]); 741 742 // ./test/core/atomic.wast:354 743 assert_return( 744 () => invoke($0, `i64.atomic.rmw32.cmpxchg_u`, [0, 0n, -3838290751524198683n]), 745 [value("i64", 286331153n)], 746 ); 747 748 // ./test/core/atomic.wast:355 749 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303441n)]); 750 751 // ./test/core/atomic.wast:357 752 invoke($0, `init`, [1229782938247303441n]); 753 754 // ./test/core/atomic.wast:358 755 assert_return( 756 () => invoke($0, `i64.atomic.rmw32.cmpxchg_u`, [ 757 0, 758 1229782938247303441n, 759 -3838290751524198683n, 760 ]), 761 [value("i64", 286331153n)], 762 ); 763 764 // ./test/core/atomic.wast:359 765 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782941362267877n)]); 766 767 // ./test/core/atomic.wast:363 768 invoke($0, `init`, [1229782938247303441n]); 769 770 // ./test/core/atomic.wast:364 771 assert_return( 772 () => invoke($0, `i32.atomic.rmw.cmpxchg`, [0, 286331153, 305419896]), 773 [value("i32", 286331153)], 774 ); 775 776 // ./test/core/atomic.wast:365 777 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938266392184n)]); 778 779 // ./test/core/atomic.wast:367 780 invoke($0, `init`, [1229782938247303441n]); 781 782 // ./test/core/atomic.wast:368 783 assert_return( 784 () => invoke($0, `i64.atomic.rmw.cmpxchg`, [ 785 0, 786 1229782938247303441n, 787 72340172854919682n, 788 ]), 789 [value("i64", 1229782938247303441n)], 790 ); 791 792 // ./test/core/atomic.wast:369 793 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 72340172854919682n)]); 794 795 // ./test/core/atomic.wast:371 796 invoke($0, `init`, [1229782938247303441n]); 797 798 // ./test/core/atomic.wast:372 799 assert_return(() => invoke($0, `i32.atomic.rmw8.cmpxchg_u`, [0, 17, -842150451]), [value("i32", 17)]); 800 801 // ./test/core/atomic.wast:373 802 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303629n)]); 803 804 // ./test/core/atomic.wast:375 805 invoke($0, `init`, [1229782938247303441n]); 806 807 // ./test/core/atomic.wast:376 808 assert_return( 809 () => invoke($0, `i32.atomic.rmw16.cmpxchg_u`, [0, 4369, -889271554]), 810 [value("i32", 4369)], 811 ); 812 813 // ./test/core/atomic.wast:377 814 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247351038n)]); 815 816 // ./test/core/atomic.wast:379 817 invoke($0, `init`, [1229782938247303441n]); 818 819 // ./test/core/atomic.wast:380 820 assert_return( 821 () => invoke($0, `i64.atomic.rmw8.cmpxchg_u`, [0, 17n, 4774451407313060418n]), 822 [value("i64", 17n)], 823 ); 824 825 // ./test/core/atomic.wast:381 826 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247303490n)]); 827 828 // ./test/core/atomic.wast:383 829 invoke($0, `init`, [1229782938247303441n]); 830 831 // ./test/core/atomic.wast:384 832 assert_return( 833 () => invoke($0, `i64.atomic.rmw16.cmpxchg_u`, [0, 4369n, -4688318750159552785n]), 834 [value("i64", 4369n)], 835 ); 836 837 // ./test/core/atomic.wast:385 838 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782938247347951n)]); 839 840 // ./test/core/atomic.wast:387 841 invoke($0, `init`, [1229782938247303441n]); 842 843 // ./test/core/atomic.wast:388 844 assert_return( 845 () => invoke($0, `i64.atomic.rmw32.cmpxchg_u`, [0, 286331153n, -3838290751524198683n]), 846 [value("i64", 286331153n)], 847 ); 848 849 // ./test/core/atomic.wast:389 850 assert_return(() => invoke($0, `i64.atomic.load`, [0]), [value("i64", 1229782941362267877n)]); 851 852 // ./test/core/atomic.wast:394 853 assert_trap(() => invoke($0, `i32.atomic.load`, [1]), `unaligned atomic`); 854 855 // ./test/core/atomic.wast:395 856 assert_trap(() => invoke($0, `i64.atomic.load`, [1]), `unaligned atomic`); 857 858 // ./test/core/atomic.wast:396 859 assert_trap(() => invoke($0, `i32.atomic.load16_u`, [1]), `unaligned atomic`); 860 861 // ./test/core/atomic.wast:397 862 assert_trap(() => invoke($0, `i64.atomic.load16_u`, [1]), `unaligned atomic`); 863 864 // ./test/core/atomic.wast:398 865 assert_trap(() => invoke($0, `i64.atomic.load32_u`, [1]), `unaligned atomic`); 866 867 // ./test/core/atomic.wast:399 868 assert_trap(() => invoke($0, `i32.atomic.store`, [1, 0]), `unaligned atomic`); 869 870 // ./test/core/atomic.wast:400 871 assert_trap(() => invoke($0, `i64.atomic.store`, [1, 0n]), `unaligned atomic`); 872 873 // ./test/core/atomic.wast:401 874 assert_trap(() => invoke($0, `i32.atomic.store16`, [1, 0]), `unaligned atomic`); 875 876 // ./test/core/atomic.wast:402 877 assert_trap(() => invoke($0, `i64.atomic.store16`, [1, 0n]), `unaligned atomic`); 878 879 // ./test/core/atomic.wast:403 880 assert_trap(() => invoke($0, `i64.atomic.store32`, [1, 0n]), `unaligned atomic`); 881 882 // ./test/core/atomic.wast:404 883 assert_trap(() => invoke($0, `i32.atomic.rmw.add`, [1, 0]), `unaligned atomic`); 884 885 // ./test/core/atomic.wast:405 886 assert_trap(() => invoke($0, `i64.atomic.rmw.add`, [1, 0n]), `unaligned atomic`); 887 888 // ./test/core/atomic.wast:406 889 assert_trap(() => invoke($0, `i32.atomic.rmw16.add_u`, [1, 0]), `unaligned atomic`); 890 891 // ./test/core/atomic.wast:407 892 assert_trap(() => invoke($0, `i64.atomic.rmw16.add_u`, [1, 0n]), `unaligned atomic`); 893 894 // ./test/core/atomic.wast:408 895 assert_trap(() => invoke($0, `i64.atomic.rmw32.add_u`, [1, 0n]), `unaligned atomic`); 896 897 // ./test/core/atomic.wast:409 898 assert_trap(() => invoke($0, `i32.atomic.rmw.sub`, [1, 0]), `unaligned atomic`); 899 900 // ./test/core/atomic.wast:410 901 assert_trap(() => invoke($0, `i64.atomic.rmw.sub`, [1, 0n]), `unaligned atomic`); 902 903 // ./test/core/atomic.wast:411 904 assert_trap(() => invoke($0, `i32.atomic.rmw16.sub_u`, [1, 0]), `unaligned atomic`); 905 906 // ./test/core/atomic.wast:412 907 assert_trap(() => invoke($0, `i64.atomic.rmw16.sub_u`, [1, 0n]), `unaligned atomic`); 908 909 // ./test/core/atomic.wast:413 910 assert_trap(() => invoke($0, `i64.atomic.rmw32.sub_u`, [1, 0n]), `unaligned atomic`); 911 912 // ./test/core/atomic.wast:414 913 assert_trap(() => invoke($0, `i32.atomic.rmw.and`, [1, 0]), `unaligned atomic`); 914 915 // ./test/core/atomic.wast:415 916 assert_trap(() => invoke($0, `i64.atomic.rmw.and`, [1, 0n]), `unaligned atomic`); 917 918 // ./test/core/atomic.wast:416 919 assert_trap(() => invoke($0, `i32.atomic.rmw16.and_u`, [1, 0]), `unaligned atomic`); 920 921 // ./test/core/atomic.wast:417 922 assert_trap(() => invoke($0, `i64.atomic.rmw16.and_u`, [1, 0n]), `unaligned atomic`); 923 924 // ./test/core/atomic.wast:418 925 assert_trap(() => invoke($0, `i64.atomic.rmw32.and_u`, [1, 0n]), `unaligned atomic`); 926 927 // ./test/core/atomic.wast:419 928 assert_trap(() => invoke($0, `i32.atomic.rmw.or`, [1, 0]), `unaligned atomic`); 929 930 // ./test/core/atomic.wast:420 931 assert_trap(() => invoke($0, `i64.atomic.rmw.or`, [1, 0n]), `unaligned atomic`); 932 933 // ./test/core/atomic.wast:421 934 assert_trap(() => invoke($0, `i32.atomic.rmw16.or_u`, [1, 0]), `unaligned atomic`); 935 936 // ./test/core/atomic.wast:422 937 assert_trap(() => invoke($0, `i64.atomic.rmw16.or_u`, [1, 0n]), `unaligned atomic`); 938 939 // ./test/core/atomic.wast:423 940 assert_trap(() => invoke($0, `i64.atomic.rmw32.or_u`, [1, 0n]), `unaligned atomic`); 941 942 // ./test/core/atomic.wast:424 943 assert_trap(() => invoke($0, `i32.atomic.rmw.xor`, [1, 0]), `unaligned atomic`); 944 945 // ./test/core/atomic.wast:425 946 assert_trap(() => invoke($0, `i64.atomic.rmw.xor`, [1, 0n]), `unaligned atomic`); 947 948 // ./test/core/atomic.wast:426 949 assert_trap(() => invoke($0, `i32.atomic.rmw16.xor_u`, [1, 0]), `unaligned atomic`); 950 951 // ./test/core/atomic.wast:427 952 assert_trap(() => invoke($0, `i64.atomic.rmw16.xor_u`, [1, 0n]), `unaligned atomic`); 953 954 // ./test/core/atomic.wast:428 955 assert_trap(() => invoke($0, `i64.atomic.rmw32.xor_u`, [1, 0n]), `unaligned atomic`); 956 957 // ./test/core/atomic.wast:429 958 assert_trap(() => invoke($0, `i32.atomic.rmw.xchg`, [1, 0]), `unaligned atomic`); 959 960 // ./test/core/atomic.wast:430 961 assert_trap(() => invoke($0, `i64.atomic.rmw.xchg`, [1, 0n]), `unaligned atomic`); 962 963 // ./test/core/atomic.wast:431 964 assert_trap(() => invoke($0, `i32.atomic.rmw16.xchg_u`, [1, 0]), `unaligned atomic`); 965 966 // ./test/core/atomic.wast:432 967 assert_trap(() => invoke($0, `i64.atomic.rmw16.xchg_u`, [1, 0n]), `unaligned atomic`); 968 969 // ./test/core/atomic.wast:433 970 assert_trap(() => invoke($0, `i64.atomic.rmw32.xchg_u`, [1, 0n]), `unaligned atomic`); 971 972 // ./test/core/atomic.wast:434 973 assert_trap(() => invoke($0, `i32.atomic.rmw.cmpxchg`, [1, 0, 0]), `unaligned atomic`); 974 975 // ./test/core/atomic.wast:435 976 assert_trap(() => invoke($0, `i64.atomic.rmw.cmpxchg`, [1, 0n, 0n]), `unaligned atomic`); 977 978 // ./test/core/atomic.wast:436 979 assert_trap(() => invoke($0, `i32.atomic.rmw16.cmpxchg_u`, [1, 0, 0]), `unaligned atomic`); 980 981 // ./test/core/atomic.wast:437 982 assert_trap(() => invoke($0, `i64.atomic.rmw16.cmpxchg_u`, [1, 0n, 0n]), `unaligned atomic`); 983 984 // ./test/core/atomic.wast:438 985 assert_trap(() => invoke($0, `i64.atomic.rmw32.cmpxchg_u`, [1, 0n, 0n]), `unaligned atomic`); 986 987 // ./test/core/atomic.wast:441 988 let $1 = instantiate(`(module 989 (memory 1 1 shared) 990 991 (func (export "init") (param \$value i64) (i64.store (i32.const 0) (local.get \$value))) 992 993 (func (export "memory.atomic.notify") (param \$addr i32) (param \$count i32) (result i32) 994 (memory.atomic.notify (local.get 0) (local.get 1))) 995 (func (export "memory.atomic.wait32") (param \$addr i32) (param \$expected i32) (param \$timeout i64) (result i32) 996 (memory.atomic.wait32 (local.get 0) (local.get 1) (local.get 2))) 997 (func (export "memory.atomic.wait64") (param \$addr i32) (param \$expected i64) (param \$timeout i64) (result i32) 998 (memory.atomic.wait64 (local.get 0) (local.get 1) (local.get 2))) 999 )`); 1000 1001 // ./test/core/atomic.wast:454 1002 invoke($1, `init`, [281474976710655n]); 1003 1004 // ./test/core/atomic.wast:457 1005 assert_return(() => invoke($1, `memory.atomic.wait32`, [0, 0, 0n]), [value("i32", 1)]); 1006 1007 // ./test/core/atomic.wast:458 1008 assert_return(() => invoke($1, `memory.atomic.wait64`, [0, 0n, 0n]), [value("i32", 1)]); 1009 1010 // ./test/core/atomic.wast:461 1011 assert_return(() => invoke($1, `memory.atomic.notify`, [0, 0]), [value("i32", 0)]); 1012 1013 // ./test/core/atomic.wast:464 1014 assert_trap(() => invoke($1, `memory.atomic.wait32`, [65536, 0, 0n]), `out of bounds memory access`); 1015 1016 // ./test/core/atomic.wast:465 1017 assert_trap(() => invoke($1, `memory.atomic.wait64`, [65536, 0n, 0n]), `out of bounds memory access`); 1018 1019 // ./test/core/atomic.wast:468 1020 assert_trap(() => invoke($1, `memory.atomic.notify`, [65536, 0]), `out of bounds memory access`); 1021 1022 // ./test/core/atomic.wast:471 1023 assert_trap(() => invoke($1, `memory.atomic.wait32`, [65531, 0, 0n]), `unaligned atomic`); 1024 1025 // ./test/core/atomic.wast:472 1026 assert_trap(() => invoke($1, `memory.atomic.wait64`, [65524, 0n, 0n]), `unaligned atomic`); 1027 1028 // ./test/core/atomic.wast:474 1029 assert_trap(() => invoke($1, `memory.atomic.notify`, [65531, 0]), `unaligned atomic`); 1030 1031 // ./test/core/atomic.wast:477 1032 let $2 = instantiate(`(module 1033 (memory 1 1) 1034 1035 (func (export "init") (param \$value i64) (i64.store (i32.const 0) (local.get \$value))) 1036 1037 (func (export "memory.atomic.notify") (param \$addr i32) (param \$count i32) (result i32) 1038 (memory.atomic.notify (local.get 0) (local.get 1))) 1039 (func (export "memory.atomic.wait32") (param \$addr i32) (param \$expected i32) (param \$timeout i64) (result i32) 1040 (memory.atomic.wait32 (local.get 0) (local.get 1) (local.get 2))) 1041 (func (export "memory.atomic.wait64") (param \$addr i32) (param \$expected i64) (param \$timeout i64) (result i32) 1042 (memory.atomic.wait64 (local.get 0) (local.get 1) (local.get 2))) 1043 )`); 1044 1045 // ./test/core/atomic.wast:490 1046 invoke($2, `init`, [281474976710655n]); 1047 1048 // ./test/core/atomic.wast:492 1049 assert_trap(() => invoke($2, `memory.atomic.wait32`, [0, 0, 0n]), `expected shared memory`); 1050 1051 // ./test/core/atomic.wast:493 1052 assert_trap(() => invoke($2, `memory.atomic.wait64`, [0, 0n, 0n]), `expected shared memory`); 1053 1054 // ./test/core/atomic.wast:496 1055 assert_return(() => invoke($2, `memory.atomic.notify`, [0, 0]), [value("i32", 0)]); 1056 1057 // ./test/core/atomic.wast:499 1058 assert_trap(() => invoke($2, `memory.atomic.notify`, [65536, 0]), `out of bounds memory access`); 1059 1060 // ./test/core/atomic.wast:500 1061 assert_trap(() => invoke($2, `memory.atomic.notify`, [65531, 0]), `unaligned atomic`); 1062 1063 // ./test/core/atomic.wast:503 1064 let $3 = instantiate(`(module 1065 (memory 1 1) 1066 (func (drop (memory.atomic.notify (i32.const 0) (i32.const 0)))) 1067 (func (drop (memory.atomic.wait32 (i32.const 0) (i32.const 0) (i64.const 0)))) 1068 (func (drop (memory.atomic.wait64 (i32.const 0) (i64.const 0) (i64.const 0)))) 1069 (func (drop (i32.atomic.load (i32.const 0)))) 1070 (func (drop (i64.atomic.load (i32.const 0)))) 1071 (func (drop (i32.atomic.load16_u (i32.const 0)))) 1072 (func (drop (i64.atomic.load16_u (i32.const 0)))) 1073 (func (drop (i64.atomic.load32_u (i32.const 0)))) 1074 (func (i32.atomic.store (i32.const 0) (i32.const 0))) 1075 (func (i64.atomic.store (i32.const 0) (i64.const 0))) 1076 (func (i32.atomic.store16 (i32.const 0) (i32.const 0))) 1077 (func (i64.atomic.store16 (i32.const 0) (i64.const 0))) 1078 (func (i64.atomic.store32 (i32.const 0) (i64.const 0))) 1079 (func (drop (i32.atomic.rmw.add (i32.const 0) (i32.const 0)))) 1080 (func (drop (i64.atomic.rmw.add (i32.const 0) (i64.const 0)))) 1081 (func (drop (i32.atomic.rmw16.add_u (i32.const 0) (i32.const 0)))) 1082 (func (drop (i64.atomic.rmw16.add_u (i32.const 0) (i64.const 0)))) 1083 (func (drop (i64.atomic.rmw32.add_u (i32.const 0) (i64.const 0)))) 1084 (func (drop (i32.atomic.rmw.sub (i32.const 0) (i32.const 0)))) 1085 (func (drop (i64.atomic.rmw.sub (i32.const 0) (i64.const 0)))) 1086 (func (drop (i32.atomic.rmw16.sub_u (i32.const 0) (i32.const 0)))) 1087 (func (drop (i64.atomic.rmw16.sub_u (i32.const 0) (i64.const 0)))) 1088 (func (drop (i64.atomic.rmw32.sub_u (i32.const 0) (i64.const 0)))) 1089 (func (drop (i32.atomic.rmw.and (i32.const 0) (i32.const 0)))) 1090 (func (drop (i64.atomic.rmw.and (i32.const 0) (i64.const 0)))) 1091 (func (drop (i32.atomic.rmw16.and_u (i32.const 0) (i32.const 0)))) 1092 (func (drop (i64.atomic.rmw16.and_u (i32.const 0) (i64.const 0)))) 1093 (func (drop (i64.atomic.rmw32.and_u (i32.const 0) (i64.const 0)))) 1094 (func (drop (i32.atomic.rmw.or (i32.const 0) (i32.const 0)))) 1095 (func (drop (i64.atomic.rmw.or (i32.const 0) (i64.const 0)))) 1096 (func (drop (i32.atomic.rmw16.or_u (i32.const 0) (i32.const 0)))) 1097 (func (drop (i64.atomic.rmw16.or_u (i32.const 0) (i64.const 0)))) 1098 (func (drop (i64.atomic.rmw32.or_u (i32.const 0) (i64.const 0)))) 1099 (func (drop (i32.atomic.rmw.xor (i32.const 0) (i32.const 0)))) 1100 (func (drop (i64.atomic.rmw.xor (i32.const 0) (i64.const 0)))) 1101 (func (drop (i32.atomic.rmw16.xor_u (i32.const 0) (i32.const 0)))) 1102 (func (drop (i64.atomic.rmw16.xor_u (i32.const 0) (i64.const 0)))) 1103 (func (drop (i64.atomic.rmw32.xor_u (i32.const 0) (i64.const 0)))) 1104 (func (drop (i32.atomic.rmw.xchg (i32.const 0) (i32.const 0)))) 1105 (func (drop (i64.atomic.rmw.xchg (i32.const 0) (i64.const 0)))) 1106 (func (drop (i32.atomic.rmw16.xchg_u (i32.const 0) (i32.const 0)))) 1107 (func (drop (i64.atomic.rmw16.xchg_u (i32.const 0) (i64.const 0)))) 1108 (func (drop (i64.atomic.rmw32.xchg_u (i32.const 0) (i64.const 0)))) 1109 (func (drop (i32.atomic.rmw.cmpxchg (i32.const 0) (i32.const 0) (i32.const 0)))) 1110 (func (drop (i64.atomic.rmw.cmpxchg (i32.const 0) (i64.const 0) (i64.const 0)))) 1111 (func (drop (i32.atomic.rmw16.cmpxchg_u (i32.const 0) (i32.const 0) (i32.const 0)))) 1112 (func (drop (i64.atomic.rmw16.cmpxchg_u (i32.const 0) (i64.const 0) (i64.const 0)))) 1113 (func (drop (i64.atomic.rmw32.cmpxchg_u (i32.const 0) (i64.const 0) (i64.const 0)))) 1114 )`); 1115 1116 // ./test/core/atomic.wast:556 1117 let $4 = instantiate(`(module 1118 (func (export "fence") (atomic.fence)) 1119 )`); 1120 1121 // ./test/core/atomic.wast:560 1122 assert_return(() => invoke($4, `fence`, []), []); 1123 1124 // ./test/core/atomic.wast:563 1125 assert_invalid( 1126 () => instantiate(`(module (func (drop (memory.atomic.notify (i32.const 0) (i32.const 0)))))`), 1127 `unknown memory`, 1128 ); 1129 1130 // ./test/core/atomic.wast:564 1131 assert_invalid( 1132 () => instantiate(`(module (func (drop (memory.atomic.wait32 (i32.const 0) (i32.const 0) (i64.const 0)))))`), 1133 `unknown memory`, 1134 ); 1135 1136 // ./test/core/atomic.wast:565 1137 assert_invalid( 1138 () => instantiate(`(module (func (drop (memory.atomic.wait64 (i32.const 0) (i64.const 0) (i64.const 0)))))`), 1139 `unknown memory`, 1140 ); 1141 1142 // ./test/core/atomic.wast:566 1143 assert_invalid( 1144 () => instantiate(`(module (func (drop (i32.atomic.load (i32.const 0)))))`), 1145 `unknown memory`, 1146 ); 1147 1148 // ./test/core/atomic.wast:567 1149 assert_invalid( 1150 () => instantiate(`(module (func (drop (i64.atomic.load (i32.const 0)))))`), 1151 `unknown memory`, 1152 ); 1153 1154 // ./test/core/atomic.wast:568 1155 assert_invalid( 1156 () => instantiate(`(module (func (drop (i32.atomic.load16_u (i32.const 0)))))`), 1157 `unknown memory`, 1158 ); 1159 1160 // ./test/core/atomic.wast:569 1161 assert_invalid( 1162 () => instantiate(`(module (func (drop (i64.atomic.load16_u (i32.const 0)))))`), 1163 `unknown memory`, 1164 ); 1165 1166 // ./test/core/atomic.wast:570 1167 assert_invalid( 1168 () => instantiate(`(module (func (drop (i64.atomic.load32_u (i32.const 0)))))`), 1169 `unknown memory`, 1170 ); 1171 1172 // ./test/core/atomic.wast:571 1173 assert_invalid( 1174 () => instantiate(`(module (func (i32.atomic.store (i32.const 0) (i32.const 0))))`), 1175 `unknown memory`, 1176 ); 1177 1178 // ./test/core/atomic.wast:572 1179 assert_invalid( 1180 () => instantiate(`(module (func (i64.atomic.store (i32.const 0) (i64.const 0))))`), 1181 `unknown memory`, 1182 ); 1183 1184 // ./test/core/atomic.wast:573 1185 assert_invalid( 1186 () => instantiate(`(module (func (i32.atomic.store16 (i32.const 0) (i32.const 0))))`), 1187 `unknown memory`, 1188 ); 1189 1190 // ./test/core/atomic.wast:574 1191 assert_invalid( 1192 () => instantiate(`(module (func (i64.atomic.store16 (i32.const 0) (i64.const 0))))`), 1193 `unknown memory`, 1194 ); 1195 1196 // ./test/core/atomic.wast:575 1197 assert_invalid( 1198 () => instantiate(`(module (func (i64.atomic.store32 (i32.const 0) (i64.const 0))))`), 1199 `unknown memory`, 1200 ); 1201 1202 // ./test/core/atomic.wast:576 1203 assert_invalid( 1204 () => instantiate(`(module (func (drop (i32.atomic.rmw.add (i32.const 0) (i32.const 0)))))`), 1205 `unknown memory`, 1206 ); 1207 1208 // ./test/core/atomic.wast:577 1209 assert_invalid( 1210 () => instantiate(`(module (func (drop (i64.atomic.rmw.add (i32.const 0) (i64.const 0)))))`), 1211 `unknown memory`, 1212 ); 1213 1214 // ./test/core/atomic.wast:578 1215 assert_invalid( 1216 () => instantiate(`(module (func (drop (i32.atomic.rmw16.add_u (i32.const 0) (i32.const 0)))))`), 1217 `unknown memory`, 1218 ); 1219 1220 // ./test/core/atomic.wast:579 1221 assert_invalid( 1222 () => instantiate(`(module (func (drop (i64.atomic.rmw16.add_u (i32.const 0) (i64.const 0)))))`), 1223 `unknown memory`, 1224 ); 1225 1226 // ./test/core/atomic.wast:580 1227 assert_invalid( 1228 () => instantiate(`(module (func (drop (i64.atomic.rmw32.add_u (i32.const 0) (i64.const 0)))))`), 1229 `unknown memory`, 1230 ); 1231 1232 // ./test/core/atomic.wast:581 1233 assert_invalid( 1234 () => instantiate(`(module (func (drop (i32.atomic.rmw.sub (i32.const 0) (i32.const 0)))))`), 1235 `unknown memory`, 1236 ); 1237 1238 // ./test/core/atomic.wast:582 1239 assert_invalid( 1240 () => instantiate(`(module (func (drop (i64.atomic.rmw.sub (i32.const 0) (i64.const 0)))))`), 1241 `unknown memory`, 1242 ); 1243 1244 // ./test/core/atomic.wast:583 1245 assert_invalid( 1246 () => instantiate(`(module (func (drop (i32.atomic.rmw16.sub_u (i32.const 0) (i32.const 0)))))`), 1247 `unknown memory`, 1248 ); 1249 1250 // ./test/core/atomic.wast:584 1251 assert_invalid( 1252 () => instantiate(`(module (func (drop (i64.atomic.rmw16.sub_u (i32.const 0) (i64.const 0)))))`), 1253 `unknown memory`, 1254 ); 1255 1256 // ./test/core/atomic.wast:585 1257 assert_invalid( 1258 () => instantiate(`(module (func (drop (i64.atomic.rmw32.sub_u (i32.const 0) (i64.const 0)))))`), 1259 `unknown memory`, 1260 ); 1261 1262 // ./test/core/atomic.wast:586 1263 assert_invalid( 1264 () => instantiate(`(module (func (drop (i32.atomic.rmw.and (i32.const 0) (i32.const 0)))))`), 1265 `unknown memory`, 1266 ); 1267 1268 // ./test/core/atomic.wast:587 1269 assert_invalid( 1270 () => instantiate(`(module (func (drop (i64.atomic.rmw.and (i32.const 0) (i64.const 0)))))`), 1271 `unknown memory`, 1272 ); 1273 1274 // ./test/core/atomic.wast:588 1275 assert_invalid( 1276 () => instantiate(`(module (func (drop (i32.atomic.rmw16.and_u (i32.const 0) (i32.const 0)))))`), 1277 `unknown memory`, 1278 ); 1279 1280 // ./test/core/atomic.wast:589 1281 assert_invalid( 1282 () => instantiate(`(module (func (drop (i64.atomic.rmw16.and_u (i32.const 0) (i64.const 0)))))`), 1283 `unknown memory`, 1284 ); 1285 1286 // ./test/core/atomic.wast:590 1287 assert_invalid( 1288 () => instantiate(`(module (func (drop (i64.atomic.rmw32.and_u (i32.const 0) (i64.const 0)))))`), 1289 `unknown memory`, 1290 ); 1291 1292 // ./test/core/atomic.wast:591 1293 assert_invalid( 1294 () => instantiate(`(module (func (drop (i32.atomic.rmw.or (i32.const 0) (i32.const 0)))))`), 1295 `unknown memory`, 1296 ); 1297 1298 // ./test/core/atomic.wast:592 1299 assert_invalid( 1300 () => instantiate(`(module (func (drop (i64.atomic.rmw.or (i32.const 0) (i64.const 0)))))`), 1301 `unknown memory`, 1302 ); 1303 1304 // ./test/core/atomic.wast:593 1305 assert_invalid( 1306 () => instantiate(`(module (func (drop (i32.atomic.rmw16.or_u (i32.const 0) (i32.const 0)))))`), 1307 `unknown memory`, 1308 ); 1309 1310 // ./test/core/atomic.wast:594 1311 assert_invalid( 1312 () => instantiate(`(module (func (drop (i64.atomic.rmw16.or_u (i32.const 0) (i64.const 0)))))`), 1313 `unknown memory`, 1314 ); 1315 1316 // ./test/core/atomic.wast:595 1317 assert_invalid( 1318 () => instantiate(`(module (func (drop (i64.atomic.rmw32.or_u (i32.const 0) (i64.const 0)))))`), 1319 `unknown memory`, 1320 ); 1321 1322 // ./test/core/atomic.wast:596 1323 assert_invalid( 1324 () => instantiate(`(module (func (drop (i32.atomic.rmw.xor (i32.const 0) (i32.const 0)))))`), 1325 `unknown memory`, 1326 ); 1327 1328 // ./test/core/atomic.wast:597 1329 assert_invalid( 1330 () => instantiate(`(module (func (drop (i64.atomic.rmw.xor (i32.const 0) (i64.const 0)))))`), 1331 `unknown memory`, 1332 ); 1333 1334 // ./test/core/atomic.wast:598 1335 assert_invalid( 1336 () => instantiate(`(module (func (drop (i32.atomic.rmw16.xor_u (i32.const 0) (i32.const 0)))))`), 1337 `unknown memory`, 1338 ); 1339 1340 // ./test/core/atomic.wast:599 1341 assert_invalid( 1342 () => instantiate(`(module (func (drop (i64.atomic.rmw16.xor_u (i32.const 0) (i64.const 0)))))`), 1343 `unknown memory`, 1344 ); 1345 1346 // ./test/core/atomic.wast:600 1347 assert_invalid( 1348 () => instantiate(`(module (func (drop (i64.atomic.rmw32.xor_u (i32.const 0) (i64.const 0)))))`), 1349 `unknown memory`, 1350 ); 1351 1352 // ./test/core/atomic.wast:601 1353 assert_invalid( 1354 () => instantiate(`(module (func (drop (i32.atomic.rmw.xchg (i32.const 0) (i32.const 0)))))`), 1355 `unknown memory`, 1356 ); 1357 1358 // ./test/core/atomic.wast:602 1359 assert_invalid( 1360 () => instantiate(`(module (func (drop (i64.atomic.rmw.xchg (i32.const 0) (i64.const 0)))))`), 1361 `unknown memory`, 1362 ); 1363 1364 // ./test/core/atomic.wast:603 1365 assert_invalid( 1366 () => instantiate(`(module (func (drop (i32.atomic.rmw16.xchg_u (i32.const 0) (i32.const 0)))))`), 1367 `unknown memory`, 1368 ); 1369 1370 // ./test/core/atomic.wast:604 1371 assert_invalid( 1372 () => instantiate(`(module (func (drop (i64.atomic.rmw16.xchg_u (i32.const 0) (i64.const 0)))))`), 1373 `unknown memory`, 1374 ); 1375 1376 // ./test/core/atomic.wast:605 1377 assert_invalid( 1378 () => instantiate(`(module (func (drop (i64.atomic.rmw32.xchg_u (i32.const 0) (i64.const 0)))))`), 1379 `unknown memory`, 1380 ); 1381 1382 // ./test/core/atomic.wast:606 1383 assert_invalid( 1384 () => instantiate(`(module (func (drop (i32.atomic.rmw.cmpxchg (i32.const 0) (i32.const 0) (i32.const 0)))))`), 1385 `unknown memory`, 1386 ); 1387 1388 // ./test/core/atomic.wast:607 1389 assert_invalid( 1390 () => instantiate(`(module (func (drop (i64.atomic.rmw.cmpxchg (i32.const 0) (i64.const 0) (i64.const 0)))))`), 1391 `unknown memory`, 1392 ); 1393 1394 // ./test/core/atomic.wast:608 1395 assert_invalid( 1396 () => instantiate(`(module (func (drop (i32.atomic.rmw16.cmpxchg_u (i32.const 0) (i32.const 0) (i32.const 0)))))`), 1397 `unknown memory`, 1398 ); 1399 1400 // ./test/core/atomic.wast:609 1401 assert_invalid( 1402 () => instantiate(`(module (func (drop (i64.atomic.rmw16.cmpxchg_u (i32.const 0) (i64.const 0) (i64.const 0)))))`), 1403 `unknown memory`, 1404 ); 1405 1406 // ./test/core/atomic.wast:610 1407 assert_invalid( 1408 () => instantiate(`(module (func (drop (i64.atomic.rmw32.cmpxchg_u (i32.const 0) (i64.const 0) (i64.const 0)))))`), 1409 `unknown memory`, 1410 );