|
|
|
Table instructions Added instructions to directly access and modify tables ? . • allow any as element type • New Multiple tables Added the ability to use multiple tables per module ? . • may , and multiple tables • take a immediate: • take a Bulk memory and table instructions Added instructions that modify ranges of memory or table entries • New • New • New form of • New form of • New in binary format • Active data and element segments boundaries are no longer checked at compile time but may trap instead Vector instructions Added vector type and instructions that manipulate multiple numeric values in parallel (also known as SIMD , single instruction multiple data) • New • New v128 v128 x 𝑀 v128 _ zero , v128 _ splat , v128 _ lane , v128 v128 _ lane • New constant v128 • New unary v128 . not , i 𝑁 x 𝑀. abs , i 𝑁 x 𝑀. neg , i8x16 . popcnt , f 𝑁 x 𝑀. abs , f 𝑁 x 𝑀. neg , f 𝑁 x 𝑀. sqrt , f 𝑁 x 𝑀. ceil , f 𝑁 x 𝑀. floor , f 𝑁 x 𝑀. trunc , f 𝑁 x 𝑀. nearest • New binary v128 . and , v128 . andnot , v128 . or , v128 . xor , i 𝑁 x 𝑀. add , i 𝑁 x 𝑀. sub , i 𝑁 x 𝑀. mul , i 𝑁 x 𝑀. add _ sat i 𝑁 x 𝑀. sub _ sat i 𝑁 x 𝑀. min i 𝑁 x 𝑀. max i 𝑁 x 𝑀. shl , i 𝑁 x 𝑀. shr f 𝑁 x 𝑀. add , i 𝑁 x 𝑀. extmul i 𝑁 ′ x 𝑀 ′ i16x8 . q15mulr _ sat _ s , i32x4 . dot _ i16x8 _ s , i16x8 . extadd _ pairwise _ i8x16 i32x4 . extadd _ pairwise _ i16x8 i8x16 . avgr _ u , i16x8 . avgr _ u , f 𝑁 x 𝑀. sub , f 𝑁 x 𝑀. mul , f 𝑁 x 𝑀. div , f 𝑁 x 𝑀. min , f 𝑁 x 𝑀. max , f 𝑁 x 𝑀. pmin , f 𝑁 x 𝑀. pmax • New ternary v128 . bitselect • New test v128 . any _ true , i 𝑁 x 𝑀. all _ true • New relational i 𝑁 x 𝑀. eq , i 𝑁 x 𝑀. ne , i 𝑁 x 𝑀. lt i 𝑁 x 𝑀. gt i 𝑁 x 𝑀. le i 𝑁 x 𝑀. ge f 𝑁 x 𝑀. eq , f 𝑁 x 𝑀. ne , f 𝑁 x 𝑀. lt , f 𝑁 x 𝑀. gt , f 𝑁 x 𝑀. le , f 𝑁 x 𝑀. ge 58 https://github.com/WebAssembly/spec/tree/main/proposals/bulk-memory-operations/ 59 https://github.com/WebAssembly/spec/tree/main/proposals/simd/ |