@@ -575,6 +575,73 @@ def Instruction(name, opcode, type=None, validation=None, execution=None, operat
575575 Instruction (r'\I32X4.\VTRUNC\K{\_sat\_f64x2\_u\_zero}' , r'\hex{FD}~~\hex{FD}~~\hex{01}' , r'[\V128] \to [\V128]' , r'valid-vcvtop' , r'exec-vcvtop' , r'op-trunc_sat_u' ),
576576 Instruction (r'\F64X2.\VCONVERT\K{\_low\_i32x4\_s}' , r'\hex{FD}~~\hex{FE}~~\hex{01}' , r'[\V128] \to [\V128]' , r'valid-vcvtop' , r'exec-vcvtop' , r'op-convert_s' ),
577577 Instruction (r'\F64X2.\VCONVERT\K{\_low\_i32x4\_u}' , r'\hex{FD}~~\hex{FF}~~\hex{01}' , r'[\V128] \to [\V128]' , r'valid-vcvtop' , r'exec-vcvtop' , r'op-convert_u' ),
578+ Instruction (r'\MEMORYATOMICNOTIFY~\memarg' , r'\hex{FE}~~\hex{00}' , r'[\I32~\I32] \to [\I32]' , r'valid-memory.atomic.notify' , r'exec-memory.atomic.notify' ),
579+ Instruction (r'\MEMORYATOMICWAIT\K{32}~\memarg' , r'\hex{FE}~~\hex{01}' , r'[\I32~\I32~\I64] \to [\I32]' , r'valid-memory.atomic.waitn' , r'exec-memory.atomic.waitn' ),
580+ Instruction (r'\MEMORYATOMICWAIT\K{64}~\memarg' , r'\hex{FE}~~\hex{02}' , r'[\I32~\I64~\I64] \to [\I32]' , r'valid-memory.atomic.waitn' , r'exec-memory.atomic.waitn' ),
581+ Instruction (r'\MEMORYATOMICFENCE' , r'\hex{FE}~~\hex{03}~~\hex{00}' , r'[] \to []' , r'valid-memory.atomic.fence' , r'exec-memory.atomic.fence' ),
582+ Instruction (r'\I32.\ATOMICLOAD~\memarg' , r'\hex{FE}~~\hex{10}' , r'[\I32] \to [\I32]' , r'valid-atomic.load' , r'exec-atomic.load' ),
583+ Instruction (r'\I64.\ATOMICLOAD~\memarg' , r'\hex{FE}~~\hex{11}' , r'[\I32] \to [\I64]' , r'valid-atomic.load' , r'exec-atomic.load' ),
584+ Instruction (r'\I32.\ATOMICLOAD\K{8\_u}~\memarg' , r'\hex{FE}~~\hex{12}' , r'[\I32] \to [\I32]' , r'valid-atomic.loadn' , r'exec-atomic.loadn' ),
585+ Instruction (r'\I32.\ATOMICLOAD\K{16\_u}~\memarg' , r'\hex{FE}~~\hex{13}' , r'[\I32] \to [\I32]' , r'valid-atomic.loadn' , r'exec-atomic.loadn' ),
586+ Instruction (r'\I64.\ATOMICLOAD\K{8\_u}~\memarg' , r'\hex{FE}~~\hex{14}' , r'[\I32] \to [\I64]' , r'valid-atomic.loadn' , r'exec-atomic.loadn' ),
587+ Instruction (r'\I64.\ATOMICLOAD\K{16\_u}~\memarg' , r'\hex{FE}~~\hex{15}' , r'[\I32] \to [\I64]' , r'valid-atomic.loadn' , r'exec-atomic.loadn' ),
588+ Instruction (r'\I64.\ATOMICLOAD\K{32\_u}~\memarg' , r'\hex{FE}~~\hex{16}' , r'[\I32] \to [\I64]' , r'valid-atomic.loadn' , r'exec-atomic.loadn' ),
589+ Instruction (r'\I32.\ATOMICSTORE~\memarg' , r'\hex{FE}~~\hex{17}' , r'[\I32~\I32] \to []' , r'valid-atomic.store' , r'exec-atomic.store' ),
590+ Instruction (r'\I64.\ATOMICSTORE~\memarg' , r'\hex{FE}~~\hex{18}' , r'[\I32~\I64] \to []' , r'valid-atomic.store' , r'exec-atomic.store' ),
591+ Instruction (r'\I32.\ATOMICSTORE\K{8}~\memarg' , r'\hex{FE}~~\hex{19}' , r'[\I32~\I32] \to []' , r'valid-atomic.storen' , r'exec-atomic.storen' ),
592+ Instruction (r'\I32.\ATOMICSTORE\K{16}~\memarg' , r'\hex{FE}~~\hex{1A}' , r'[\I32~\I32] \to []' , r'valid-atomic.storen' , r'exec-atomic.storen' ),
593+ Instruction (r'\I64.\ATOMICSTORE\K{8}~\memarg' , r'\hex{FE}~~\hex{1B}' , r'[\I32~\I64] \to []' , r'valid-atomic.storen' , r'exec-atomic.storen' ),
594+ Instruction (r'\I64.\ATOMICSTORE\K{16}~\memarg' , r'\hex{FE}~~\hex{1C}' , r'[\I32~\I64] \to []' , r'valid-atomic.storen' , r'exec-atomic.storen' ),
595+ Instruction (r'\I64.\ATOMICSTORE\K{32}~\memarg' , r'\hex{FE}~~\hex{1D}' , r'[\I32~\I64] \to []' , r'valid-atomic.storen' , r'exec-atomic.storen' ),
596+ Instruction (r'\I32.\ATOMICRMW.\ATADD~\memarg' , r'\hex{FE}~~\hex{1E}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
597+ Instruction (r'\I64.\ATOMICRMW.\ATADD~\memarg' , r'\hex{FE}~~\hex{1F}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
598+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATADD\K{\_u}~\memarg' , r'\hex{FE}~~\hex{20}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
599+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATADD\K{\_u}~\memarg' , r'\hex{FE}~~\hex{21}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
600+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATADD\K{\_u}~\memarg' , r'\hex{FE}~~\hex{22}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
601+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATADD\K{\_u}~\memarg' , r'\hex{FE}~~\hex{23}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
602+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATADD\K{\_u}~\memarg' , r'\hex{FE}~~\hex{24}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
603+ Instruction (r'\I32.\ATOMICRMW.\ATSUB~\memarg' , r'\hex{FE}~~\hex{25}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
604+ Instruction (r'\I64.\ATOMICRMW.\ATSUB~\memarg' , r'\hex{FE}~~\hex{26}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
605+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATSUB\K{\_u}~\memarg' , r'\hex{FE}~~\hex{27}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
606+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATSUB\K{\_u}~\memarg' , r'\hex{FE}~~\hex{28}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
607+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATSUB\K{\_u}~\memarg' , r'\hex{FE}~~\hex{29}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
608+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATSUB\K{\_u}~\memarg' , r'\hex{FE}~~\hex{2A}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
609+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATSUB\K{\_u}~\memarg' , r'\hex{FE}~~\hex{2B}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
610+ Instruction (r'\I32.\ATOMICRMW.\ATAND~\memarg' , r'\hex{FE}~~\hex{2C}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
611+ Instruction (r'\I64.\ATOMICRMW.\ATAND~\memarg' , r'\hex{FE}~~\hex{2D}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
612+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATAND\K{\_u}~\memarg' , r'\hex{FE}~~\hex{2E}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
613+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATAND\K{\_u}~\memarg' , r'\hex{FE}~~\hex{2F}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
614+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATAND\K{\_u}~\memarg' , r'\hex{FE}~~\hex{30}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
615+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATAND\K{\_u}~\memarg' , r'\hex{FE}~~\hex{31}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
616+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATAND\K{\_u}~\memarg' , r'\hex{FE}~~\hex{32}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
617+ Instruction (r'\I32.\ATOMICRMW.\ATOR~\memarg' , r'\hex{FE}~~\hex{33}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
618+ Instruction (r'\I64.\ATOMICRMW.\ATOR~\memarg' , r'\hex{FE}~~\hex{34}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
619+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{35}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
620+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{36}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
621+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{37}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
622+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{38}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
623+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{39}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
624+ Instruction (r'\I32.\ATOMICRMW.\ATXOR~\memarg' , r'\hex{FE}~~\hex{3A}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
625+ Instruction (r'\I64.\ATOMICRMW.\ATXOR~\memarg' , r'\hex{FE}~~\hex{3B}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
626+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATXOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{3C}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
627+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATXOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{3D}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
628+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATXOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{3E}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
629+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATXOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{3F}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
630+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATXOR\K{\_u}~\memarg' , r'\hex{FE}~~\hex{40}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
631+ Instruction (r'\I32.\ATOMICRMW.\ATXCHG~\memarg' , r'\hex{FE}~~\hex{41}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
632+ Instruction (r'\I64.\ATOMICRMW.\ATXCHG~\memarg' , r'\hex{FE}~~\hex{42}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmw' , r'exec-atomic.rmw' ),
633+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{43}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
634+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{44}' , r'[\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
635+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{45}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
636+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{46}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
637+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{47}' , r'[\I32~\I64] \to [\I64]' , r'valid-atomic.rmwn' , r'exec-atomic.rmwn' ),
638+ Instruction (r'\I32.\ATOMICRMW.\ATCMPXCHG~\memarg' , r'\hex{FE}~~\hex{48}' , r'[\I32~\I32~\I32] \to [\I32]' , r'valid-atomic.rmw.cmpxchg' , r'exec-atomic.rmw.cmpxchg' ),
639+ Instruction (r'\I64.\ATOMICRMW.\ATCMPXCHG~\memarg' , r'\hex{FE}~~\hex{49}' , r'[\I32~\I64~\I64] \to [\I64]' , r'valid-atomic.rmw.cmpxchg' , r'exec-atomic.rmw.cmpxchg' ),
640+ Instruction (r'\I32.\ATOMICRMW\K{8}.\ATCMPXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{4A}' , r'[\I32~\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn.cmpxchg' , r'exec-atomic.rmwn.cmpxchg' ),
641+ Instruction (r'\I32.\ATOMICRMW\K{16}.\ATCMPXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{4B}' , r'[\I32~\I32~\I32] \to [\I32]' , r'valid-atomic.rmwn.cmpxchg' , r'exec-atomic.rmwn.cmpxchg' ),
642+ Instruction (r'\I64.\ATOMICRMW\K{8}.\ATCMPXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{4C}' , r'[\I32~\I64~\I64] \to [\I64]' , r'valid-atomic.rmwn.cmpxchg' , r'exec-atomic.rmwn.cmpxchg' ),
643+ Instruction (r'\I64.\ATOMICRMW\K{16}.\ATCMPXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{4D}' , r'[\I32~\I64~\I64] \to [\I64]' , r'valid-atomic.rmwn.cmpxchg' , r'exec-atomic.rmwn.cmpxchg' ),
644+ Instruction (r'\I64.\ATOMICRMW\K{32}.\ATCMPXCHG\K{\_u}~\memarg' , r'\hex{FE}~~\hex{4E}' , r'[\I32~\I64~\I64] \to [\I64]' , r'valid-atomic.rmwn.cmpxchg' , r'exec-atomic.rmwn.cmpxchg' ),
578645]
579646
580647
0 commit comments