@@ -1649,51 +1649,58 @@ impl<'a> BinaryReader<'a> {
16491649 0x50 => Operator :: V128Or ,
16501650 0x51 => Operator :: V128Xor ,
16511651 0x52 => Operator :: V128Bitselect ,
1652- 0x53 => Operator :: F64x2ConvertLowI32x4S ,
1653- 0x54 => Operator :: F64x2ConvertLowI32x4U ,
1654- 0x55 => Operator :: I32x4TruncSatF64x2SZero ,
1655- 0x56 => Operator :: I32x4TruncSatF64x2UZero ,
1656- 0x57 => Operator :: F32x4DemoteF64x2Zero ,
1657- 0x58 => Operator :: V128Load8Lane {
1652+ 0x53 => Operator :: V128AnyTrue ,
1653+ 0x54 => Operator :: V128Load8Lane {
16581654 memarg : self . read_memarg ( ) ?,
16591655 lane : self . read_lane_index ( 16 ) ?,
16601656 } ,
1661- 0x59 => Operator :: V128Load16Lane {
1657+ 0x55 => Operator :: V128Load16Lane {
16621658 memarg : self . read_memarg ( ) ?,
16631659 lane : self . read_lane_index ( 8 ) ?,
16641660 } ,
1665- 0x5a => Operator :: V128Load32Lane {
1661+ 0x56 => Operator :: V128Load32Lane {
16661662 memarg : self . read_memarg ( ) ?,
16671663 lane : self . read_lane_index ( 4 ) ?,
16681664 } ,
1669- 0x5b => Operator :: V128Load64Lane {
1665+ 0x57 => Operator :: V128Load64Lane {
16701666 memarg : self . read_memarg ( ) ?,
16711667 lane : self . read_lane_index ( 2 ) ?,
16721668 } ,
1673- 0x5c => Operator :: V128Store8Lane {
1669+ 0x58 => Operator :: V128Store8Lane {
16741670 memarg : self . read_memarg ( ) ?,
16751671 lane : self . read_lane_index ( 16 ) ?,
16761672 } ,
1677- 0x5d => Operator :: V128Store16Lane {
1673+ 0x59 => Operator :: V128Store16Lane {
16781674 memarg : self . read_memarg ( ) ?,
16791675 lane : self . read_lane_index ( 8 ) ?,
16801676 } ,
1681- 0x5e => Operator :: V128Store32Lane {
1677+ 0x5a => Operator :: V128Store32Lane {
16821678 memarg : self . read_memarg ( ) ?,
16831679 lane : self . read_lane_index ( 4 ) ?,
16841680 } ,
1685- 0x5f => Operator :: V128Store64Lane {
1681+ 0x5b => Operator :: V128Store64Lane {
16861682 memarg : self . read_memarg ( ) ?,
16871683 lane : self . read_lane_index ( 2 ) ?,
16881684 } ,
1685+ 0x5c => Operator :: V128Load32Zero {
1686+ memarg : self . read_memarg_of_align ( 2 ) ?,
1687+ } ,
1688+ 0x5d => Operator :: V128Load64Zero {
1689+ memarg : self . read_memarg_of_align ( 3 ) ?,
1690+ } ,
1691+ 0x5e => Operator :: F32x4DemoteF64x2Zero ,
1692+ 0x5f => Operator :: F64x2PromoteLowF32x4 ,
16891693 0x60 => Operator :: I8x16Abs ,
16901694 0x61 => Operator :: I8x16Neg ,
1691- 0x62 => Operator :: V128AnyTrue ,
1695+ 0x62 => Operator :: I8x16Popcnt ,
16921696 0x63 => Operator :: I8x16AllTrue ,
16931697 0x64 => Operator :: I8x16Bitmask ,
16941698 0x65 => Operator :: I8x16NarrowI16x8S ,
16951699 0x66 => Operator :: I8x16NarrowI16x8U ,
1696- 0x69 => Operator :: F64x2PromoteLowF32x4 ,
1700+ 0x67 => Operator :: F32x4Ceil ,
1701+ 0x68 => Operator :: F32x4Floor ,
1702+ 0x69 => Operator :: F32x4Trunc ,
1703+ 0x6a => Operator :: F32x4Nearest ,
16971704 0x6b => Operator :: I8x16Shl ,
16981705 0x6c => Operator :: I8x16ShrS ,
16991706 0x6d => Operator :: I8x16ShrU ,
@@ -1703,13 +1710,21 @@ impl<'a> BinaryReader<'a> {
17031710 0x71 => Operator :: I8x16Sub ,
17041711 0x72 => Operator :: I8x16SubSatS ,
17051712 0x73 => Operator :: I8x16SubSatU ,
1713+ 0x74 => Operator :: F64x2Ceil ,
1714+ 0x75 => Operator :: F64x2Floor ,
17061715 0x76 => Operator :: I8x16MinS ,
17071716 0x77 => Operator :: I8x16MinU ,
17081717 0x78 => Operator :: I8x16MaxS ,
17091718 0x79 => Operator :: I8x16MaxU ,
1719+ 0x7a => Operator :: F64x2Trunc ,
17101720 0x7b => Operator :: I8x16RoundingAverageU ,
1721+ 0x7c => Operator :: I16x8ExtAddPairwiseI8x16S ,
1722+ 0x7d => Operator :: I16x8ExtAddPairwiseI8x16U ,
1723+ 0x7e => Operator :: I32x4ExtAddPairwiseI16x8S ,
1724+ 0x7f => Operator :: I32x4ExtAddPairwiseI16x8U ,
17111725 0x80 => Operator :: I16x8Abs ,
17121726 0x81 => Operator :: I16x8Neg ,
1727+ 0x82 => Operator :: I16x8Q15MulrSatS ,
17131728 0x83 => Operator :: I16x8AllTrue ,
17141729 0x84 => Operator :: I16x8Bitmask ,
17151730 0x85 => Operator :: I16x8NarrowI32x4S ,
@@ -1727,14 +1742,14 @@ impl<'a> BinaryReader<'a> {
17271742 0x91 => Operator :: I16x8Sub ,
17281743 0x92 => Operator :: I16x8SubSatS ,
17291744 0x93 => Operator :: I16x8SubSatU ,
1745+ 0x94 => Operator :: F64x2Nearest ,
17301746 0x95 => Operator :: I16x8Mul ,
17311747 0x96 => Operator :: I16x8MinS ,
17321748 0x97 => Operator :: I16x8MinU ,
17331749 0x98 => Operator :: I16x8MaxS ,
17341750 0x99 => Operator :: I16x8MaxU ,
1735- 0x9a => Operator :: I16x8ExtMulLowI8x16S ,
17361751 0x9b => Operator :: I16x8RoundingAverageU ,
1737- 0x9c => Operator :: I16x8Q15MulrSatS ,
1752+ 0x9c => Operator :: I16x8ExtMulLowI8x16S ,
17381753 0x9d => Operator :: I16x8ExtMulHighI8x16S ,
17391754 0x9e => Operator :: I16x8ExtMulLowI8x16U ,
17401755 0x9f => Operator :: I16x8ExtMulHighI8x16U ,
@@ -1757,12 +1772,13 @@ impl<'a> BinaryReader<'a> {
17571772 0xb8 => Operator :: I32x4MaxS ,
17581773 0xb9 => Operator :: I32x4MaxU ,
17591774 0xba => Operator :: I32x4DotI16x8S ,
1760- 0xbb => Operator :: I32x4ExtMulLowI16x8S ,
1775+ 0xbc => Operator :: I32x4ExtMulLowI16x8S ,
17611776 0xbd => Operator :: I32x4ExtMulHighI16x8S ,
17621777 0xbe => Operator :: I32x4ExtMulLowI16x8U ,
17631778 0xbf => Operator :: I32x4ExtMulHighI16x8U ,
1764- 0xc0 => Operator :: I64x2Eq ,
1779+ 0xc0 => Operator :: I64x2Abs ,
17651780 0xc1 => Operator :: I64x2Neg ,
1781+ 0xc3 => Operator :: I64x2AllTrue ,
17661782 0xc4 => Operator :: I64x2Bitmask ,
17671783 0xc7 => Operator :: I64x2WidenLowI32x4S ,
17681784 0xc8 => Operator :: I64x2WidenHighI32x4S ,
@@ -1772,22 +1788,18 @@ impl<'a> BinaryReader<'a> {
17721788 0xcc => Operator :: I64x2ShrS ,
17731789 0xcd => Operator :: I64x2ShrU ,
17741790 0xce => Operator :: I64x2Add ,
1775- 0xcf => Operator :: I64x2AllTrue ,
1776- 0xd0 => Operator :: I64x2Ne ,
17771791 0xd1 => Operator :: I64x2Sub ,
1778- 0xd2 => Operator :: I64x2ExtMulLowI32x4S ,
1779- 0xd3 => Operator :: I64x2ExtMulHighI32x4S ,
17801792 0xd5 => Operator :: I64x2Mul ,
1781- 0xd6 => Operator :: I64x2ExtMulLowI32x4U ,
1782- 0xd7 => Operator :: I64x2ExtMulHighI32x4U ,
1783- 0xd8 => Operator :: F32x4Ceil ,
1784- 0xd9 => Operator :: F32x4Floor ,
1785- 0xda => Operator :: F32x4Trunc ,
1786- 0xdb => Operator :: F32x4Nearest ,
1787- 0xdc => Operator :: F64x2Ceil ,
1788- 0xdd => Operator :: F64x2Floor ,
1789- 0xde => Operator :: F64x2Trunc ,
1790- 0xdf => Operator :: F64x2Nearest ,
1793+ 0xd6 => Operator :: I64x2Eq ,
1794+ 0xd7 => Operator :: I64x2Ne ,
1795+ 0xd8 => Operator :: I64x2LtS ,
1796+ 0xd9 => Operator :: I64x2GtS ,
1797+ 0xda => Operator :: I64x2LeS ,
1798+ 0xdb => Operator :: I64x2GeS ,
1799+ 0xdc => Operator :: I64x2ExtMulLowI32x4S ,
1800+ 0xdd => Operator :: I64x2ExtMulHighI32x4S ,
1801+ 0xde => Operator :: I64x2ExtMulLowI32x4U ,
1802+ 0xdf => Operator :: I64x2ExtMulHighI32x4U ,
17911803 0xe0 => Operator :: F32x4Abs ,
17921804 0xe1 => Operator :: F32x4Neg ,
17931805 0xe3 => Operator :: F32x4Sqrt ,
@@ -1814,12 +1826,11 @@ impl<'a> BinaryReader<'a> {
18141826 0xf9 => Operator :: I32x4TruncSatF32x4U ,
18151827 0xfa => Operator :: F32x4ConvertI32x4S ,
18161828 0xfb => Operator :: F32x4ConvertI32x4U ,
1817- 0xfc => Operator :: V128Load32Zero {
1818- memarg : self . read_memarg_of_align ( 2 ) ?,
1819- } ,
1820- 0xfd => Operator :: V128Load64Zero {
1821- memarg : self . read_memarg_of_align ( 3 ) ?,
1822- } ,
1829+ 0xfc => Operator :: I32x4TruncSatF64x2SZero ,
1830+ 0xfd => Operator :: I32x4TruncSatF64x2UZero ,
1831+ 0xfe => Operator :: F64x2ConvertLowI32x4S ,
1832+ 0xff => Operator :: F64x2ConvertLowI32x4U ,
1833+
18231834 _ => {
18241835 return Err ( BinaryReaderError :: new (
18251836 format ! ( "Unknown 0xfd subopcode: 0x{:x}" , code) ,
0 commit comments