@@ -267,6 +267,13 @@ macro_rules! def_unsupported {
267
267
( emit I64AtomicRmw16AddU $( $rest: tt) * ) => { } ;
268
268
( emit I64AtomicRmw32AddU $( $rest: tt) * ) => { } ;
269
269
( emit I64AtomicRmwAdd $( $rest: tt) * ) => { } ;
270
+ ( emit I32AtomicRmw8SubU $( $rest: tt) * ) => { } ;
271
+ ( emit I32AtomicRmw16SubU $( $rest: tt) * ) => { } ;
272
+ ( emit I32AtomicRmwSub $( $rest: tt) * ) => { } ;
273
+ ( emit I64AtomicRmw8SubU $( $rest: tt) * ) => { } ;
274
+ ( emit I64AtomicRmw16SubU $( $rest: tt) * ) => { } ;
275
+ ( emit I64AtomicRmw32SubU $( $rest: tt) * ) => { } ;
276
+ ( emit I64AtomicRmwSub $( $rest: tt) * ) => { } ;
270
277
271
278
( emit $unsupported: tt $( $rest: tt) * ) => { $( $rest) * } ;
272
279
}
@@ -2330,6 +2337,54 @@ where
2330
2337
self . atomic_rmw ( & arg, RmwOp :: Add , OperandSize :: S64 , None )
2331
2338
}
2332
2339
2340
+ fn visit_i32_atomic_rmw_sub ( & mut self , arg : MemArg ) -> Self :: Output {
2341
+ self . atomic_rmw ( & arg, RmwOp :: Sub , OperandSize :: S32 , None )
2342
+ }
2343
+
2344
+ fn visit_i64_atomic_rmw_sub ( & mut self , arg : MemArg ) -> Self :: Output {
2345
+ self . atomic_rmw ( & arg, RmwOp :: Sub , OperandSize :: S64 , None )
2346
+ }
2347
+
2348
+ fn visit_i32_atomic_rmw8_sub_u ( & mut self , arg : MemArg ) -> Self :: Output {
2349
+ self . atomic_rmw (
2350
+ & arg,
2351
+ RmwOp :: Sub ,
2352
+ OperandSize :: S8 ,
2353
+ Some ( ExtendKind :: I32Extend8S ) ,
2354
+ )
2355
+ }
2356
+
2357
+ fn visit_i32_atomic_rmw16_sub_u ( & mut self , arg : MemArg ) -> Self :: Output {
2358
+ self . atomic_rmw (
2359
+ & arg,
2360
+ RmwOp :: Sub ,
2361
+ OperandSize :: S16 ,
2362
+ Some ( ExtendKind :: I32Extend16S ) ,
2363
+ )
2364
+ }
2365
+
2366
+ fn visit_i64_atomic_rmw8_sub_u ( & mut self , arg : MemArg ) -> Self :: Output {
2367
+ self . atomic_rmw (
2368
+ & arg,
2369
+ RmwOp :: Sub ,
2370
+ OperandSize :: S8 ,
2371
+ Some ( ExtendKind :: I64Extend8S ) ,
2372
+ )
2373
+ }
2374
+
2375
+ fn visit_i64_atomic_rmw16_sub_u ( & mut self , arg : MemArg ) -> Self :: Output {
2376
+ self . atomic_rmw (
2377
+ & arg,
2378
+ RmwOp :: Sub ,
2379
+ OperandSize :: S16 ,
2380
+ Some ( ExtendKind :: I64Extend16S ) ,
2381
+ )
2382
+ }
2383
+
2384
+ fn visit_i64_atomic_rmw32_sub_u ( & mut self , arg : MemArg ) -> Self :: Output {
2385
+ self . atomic_rmw ( & arg, RmwOp :: Sub , OperandSize :: S32 , None )
2386
+ }
2387
+
2333
2388
wasmparser:: for_each_visit_operator!( def_unsupported) ;
2334
2389
}
2335
2390
0 commit comments