saulecabrera labeled issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those proposals and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@jeffcharles)
- [ ] I32And (@jeffcharles)
- [ ] I32Or (@jeffcharles)
- [ ] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@jeffcharles)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera opened issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those proposals and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@jeffcharles)
- [ ] I32And (@jeffcharles)
- [ ] I32Or (@jeffcharles)
- [ ] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@jeffcharles)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
github-actions[bot] commented on issue #6528:
Subscribe to Label Action
cc @saulecabrera
<details>
This issue or pull request has been labeled: "winch"Thus the following users have been cc'd because of the following labels:
- saulecabrera: winch
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@jeffcharles)
- [ ] I32And (@jeffcharles)
- [ ] I32Or (@jeffcharles)
- [ ] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@jeffcharles)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
itsrainy commented on issue #6528:
This is great! Thanks for putting this together @saulecabrera!
Coincidentally @cfallin, @fitzgen and I started working on
i32.popcnt
andi64.popcnt
just this morning, primarily as a way of giving me a mini-tour of winch. @jeffcharles if you've already done the work for those instructions, we can close the draft PR I just put up. It would also be helpful/interesting for me to compare implementations, if that's the case.
jeffcharles commented on issue #6528:
All good, I haven't started on either of those yet. I'm trying to debug an issue as part of implementing
clz
andctz
and I think your PR will be very helpful in resolving that issue.
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [ ] I32And (@jeffcharles)
- [ ] I32Or (@jeffcharles)
- [ ] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [ ] I32Or (@jeffcharles)
- [ ] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [ ] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [ ] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [ ] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [ ] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [ ] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [ ] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [ ] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [ ] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [ ] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [ ] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [ ] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [ ] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [ ] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [ ] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [ ] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [ ] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [ ] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [ ] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [ ] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [ ] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [ ] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable
- [x] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [ ] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [ ] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [ ] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [ ] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [ ] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [ ] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [ ] BrTable
- [ ] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [ ] BrTable
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee
- [ ] GlobalGet
- [ ] GlobalSet
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [ ] BrTable
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee (@saulecabrera)
- [ ] GlobalGet (@saulecabrera)
- [ ] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable
- [ ] ReturnCall
- [ ] ReturnCallIndirect
- [ ] Drop
- [ ] Select
- [ ] LocalTee (@saulecabrera)
- [ ] GlobalGet (@saulecabrera)
- [ ] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable
- [ ] Drop
- [ ] Select
- [ ] LocalTee (@saulecabrera)
- [ ] GlobalGet (@saulecabrera)
- [ ] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable
- [ ] Drop
- [ ] Select
- [x] LocalTee (@saulecabrera)
- [ ] GlobalGet (@saulecabrera)
- [ ] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable
- [ ] Drop
- [ ] Select
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [ ] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable
- [ ] Drop
- [ ] Select
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable
- [ ] Drop
- [ ] Select
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const (@saulecabrera)
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable (@saulecabrera)
- [ ] Drop (@saulecabrera)
- [ ] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [ ] F32Const (@saulecabrera)
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable (@saulecabrera)
- [ ] Drop (@saulecabrera)
- [ ] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [ ] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable (@saulecabrera)
- [ ] Drop (@saulecabrera)
- [ ] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [ ] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect
- [ ] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy
- [ ] TableFill
- [ ] TableGet
- [ ] TableSet
- [ ] TableGrow
- [ ] TableSize
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect (@saulecabrera)
- [ ] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit
- [ ] ElemDrop
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect (@saulecabrera)
- [ ] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [ ] F32Abs
- [ ] F32Neg
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [ ] F64Abs
- [ ] F64Neg
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [ ] F32Ceil
- [ ] F32Floor
- [ ] F32Trunc,
- [ ] F32Nearest
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [ ] F64Ceil,
- [ ] F64Floor
- [ ] F64Trunc,
- [ ] F64Nearest
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [ ] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop (@saulecabrera)
- [ ] TableCopy (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [ ] TableInit (@saulecabrera)
- [ ] ElemDrop (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableCopy (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [ ] ElemDrop (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableCopy (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [ ] TableFill (@saulecabrera)
- [ ] TableCopy (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [ ] TableCopy (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [ ] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [ ] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [ ] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [ ] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add,
- [ ] F32Sub
- [ ] F32Mul
- [ ] F32Div
- [ ] F32Min
- [ ] F32Max
- [ ] F32Copysign
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add
- [ ] F64Sub
- [ ] F64Mul
- [ ] F64Div
- [ ] F64Min
- [ ] F64Max
- [ ] F64Copysign
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq
- [ ] F32Ne
- [ ] F32Lt
- [ ] F32Gt
- [ ] F32Le
- [ ] F32Ge
- [ ] F64Eq
- [ ] F64Ne
- [ ] F64Lt
- [ ] F64Gt
- [ ] F64Le
- [ ] F64Ge
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [ ] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [ ] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [ ] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [ ] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [ ] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [ ] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [ ] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [ ] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [ ] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [ ] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [ ] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [ ] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [ ] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [ ] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [ ] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [ ] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [ ] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [ ] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [ ] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [ ] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [ ] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [ ] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [ ] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [ ] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [ ] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [ ] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [ ] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [ ] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S
- [ ] I64ExtendI32U
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S
- [ ] I64Extend16S
- [ ] I64Extend32S
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S(@jeffcharles)
- [ ] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S
- [ ] I32Extend16S
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S(@jeffcharles)
- [ ] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S(@jeffcharles)
- [ ] I32Extend16S
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [ ] I64ExtendI32S(@jeffcharles)
- [ ] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S(@jeffcharles)
- [ ] I32Extend16S (@jeffcharles)
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [ ] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S(@jeffcharles)
- [ ] I32Extend16S (@jeffcharles)
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [ ] I32Extend8S(@jeffcharles)
- [ ] I32Extend16S (@jeffcharles)
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [x] I32Extend8S(@jeffcharles)
- [ ] I32Extend16S (@jeffcharles)
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [ ] I64Extend8S(@jeffcharles)
- [ ] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [ ] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [ ] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S
- [ ] I32TruncF32U
- [ ] I32TruncF64S
- [ ] I32TruncF64U
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S
- [ ] I64TruncF32U
- [ ] I64TruncF64S
- [ ] I64TruncF64U
- [ ] F32ConvertI32S
- [ ] F32ConvertI32U
- [ ] F32ConvertI64S
- [ ] F32ConvertI64U
- [ ] F32DemoteF64
- [ ] F64ConvertI32S
- [ ] F64ConvertI32U
- [ ] F64ConvertI64S
- [ ] F64ConvertI64U
- [ ] F64PromoteF32
- [ ] I32ReinterpretF32
- [ ] I64ReinterpretF64
- [ ] F32ReinterpretI32
- [ ] F64ReinterpretI64
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] I32TruncSatF32S
- [ ] I32TruncSatF32U
- [ ] I32TruncSatF64S
- [ ] I32TruncSatF64U
- [ ] I64TruncSatF32S
- [ ] I64TruncSatF32U
- [ ] I64TruncSatF64S
- [ ] I64TruncSatF64U
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit
- [ ] DataDrop
- [ ] MemoryCopy
- [ ] MemoryFill
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load
- [ ] I64Load
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [ ] Multi-Value (@saulecabrera)
- [x] Functions
- [ ] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize
- [ ] MemoryGrow
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [ ] Multi-Value (@saulecabrera)
- [x] Functions
- [ ] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize (@saulecabrera)
- [ ] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [ ] Multi-Value (@saulecabrera)
- [x] Functions
- [ ] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize (@saulecabrera)
- [ ] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [ ] MemorySize (@saulecabrera)
- [ ] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [ ] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [ ] MemoryInit (@saulecabrera)
- [ ] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [ ] MemoryCopy (@saulecabrera)
- [ ] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [ ] I32TruncF32S (@jeffcharles)
- [ ] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [ ] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [ ] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [ ] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [ ] I64TruncF32U (@jeffcharles)
- [ ] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [ ] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [ ] F32ConvertI32S (@jeffcharles)
- [ ] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [ ] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [ ] F32ConvertI64U (@jeffcharles)
- [ ] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [ ] F64ConvertI32S (@jeffcharles)
- [ ] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [ ] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [ ] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [ ] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [ ] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [ ] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [ ] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [ ] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load
- [ ] F64Load
- [ ] I32Load8S
- [ ] I32Load8U
- [ ] I32Load16S
- [ ] I32Load16U
- [ ] I64Load8S
- [ ] I64Load8U
- [ ] I64Load16S
- [ ] I64Load16U
- [ ] I64Load32S
- [ ] I64Load32U
- [ ] I32Store
- [ ] I64Store
- [ ] F32Store
- [ ] F64Store
- [ ] I32Store8
- [ ] I32Store16
- [ ] I64Store8
- [ ] I64Store16
- [ ] I64Store32
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [ ] I32Load (@saulecabrera)
- [ ] I64Load (@saulecabrera)
- [ ] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [ ] I64Store8 (@saulecabrera)
- [ ] I64Store16 (@saulecabrera)
- [ ] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [ ] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [ ] I64Store8 (@saulecabrera)
- [ ] I64Store16 (@saulecabrera)
- [ ] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [ ] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [ ] I64Store8 (@saulecabrera)
- [ ] I64Store16 (@saulecabrera)
- [ ] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [ ] I64Store8 (@saulecabrera)
- [ ] I64Store16 (@saulecabrera)
- [ ] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [ ] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [ ] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [ ] I32Store8 (@saulecabrera)
- [ ] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [ ] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [ ] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [ ] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [ ] I64Load32U (@saulecabrera)
- [ ] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [ ] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [ ] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [ ] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [ ] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [ ] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [ ] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [ ] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [x] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [ ] I32Load8S (@saulecabrera)
- [ ] I32Load8U (@saulecabrera)
- [x] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [ ] F64Load (@saulecabrera)
- [x] I32Load8S (@saulecabrera)
- [x] I32Load8U (@saulecabrera)
- [x] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [x] F64Load (@saulecabrera)
- [x] I32Load8S (@saulecabrera)
- [x] I32Load8U (@saulecabrera)
- [x] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera edited issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [x] F64Load (@saulecabrera)
- [x] I32Load8S (@saulecabrera)
- [x] I32Load8U (@saulecabrera)
- [x] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
saulecabrera closed issue #6528:
During the debugging meeting on June 1, 2023, we discussed opening an issue to track the missing Core Wasm opcodes in Winch. The objective of this issue is to make it easier for potential contributors to know where to start.
This list is intended to be a comprehensive compilation of the missing opcodes required to achieve parity with Core Wasm(*). Each entry also includes an owner, indicating that work on a particular opcode is currently in progress.
(*) Excluding SIMD and Reference Types to start, as drafted in the initial RFC. We can open dedicated issues as we get to those and other proposals.
cc/ @fitzgen @itsrainy
- [x] Unreachable (@saulecabrera)
- [x] Block (@saulecabrera)
- [x] Loop (@saulecabrera)
- [x] If (@saulecabrera)
- [x] Else, (@saulecabrera)
- [x] Br (@saulecabrera)
- [x] BrIf (@saulecabrera)
- [x] Return (@saulecabrera)
- [x] CallIndirect (@saulecabrera)
- [x] BrTable (@saulecabrera)
- [x] Drop (@saulecabrera)
- [x] Select (@saulecabrera)
- [x] LocalTee (@saulecabrera)
- [x] GlobalGet (@saulecabrera)
- [x] GlobalSet (@saulecabrera)
- [x] I32Load (@saulecabrera)
- [x] I64Load (@saulecabrera)
- [x] F32Load (@saulecabrera)
- [x] F64Load (@saulecabrera)
- [x] I32Load8S (@saulecabrera)
- [x] I32Load8U (@saulecabrera)
- [x] I32Load16S (@saulecabrera)
- [x] I32Load16U (@saulecabrera)
- [x] I64Load8S (@saulecabrera)
- [x] I64Load8U (@saulecabrera)
- [x] I64Load16S (@saulecabrera)
- [x] I64Load16U (@saulecabrera)
- [x] I64Load32S (@saulecabrera)
- [x] I64Load32U (@saulecabrera)
- [x] I32Store (@saulecabrera)
- [x] I64Store (@saulecabrera)
- [x] F32Store (@saulecabrera)
- [x] F64Store (@saulecabrera)
- [x] I32Store8 (@saulecabrera)
- [x] I32Store16 (@saulecabrera)
- [x] I64Store8 (@saulecabrera)
- [x] I64Store16 (@saulecabrera)
- [x] I64Store32 (@saulecabrera)
- [x] MemorySize (@saulecabrera)
- [x] MemoryGrow (@saulecabrera)
- [x] F32Const (@saulecabrera)
- [x] F64Const (@saulecabrera)
- [x] F32Eq (@jeffcharles)
- [x] F32Ne(@jeffcharles)
- [x] F32Lt(@jeffcharles)
- [x] F32Gt(@jeffcharles)
- [x] F32Le(@jeffcharles)
- [x] F32Ge(@jeffcharles)
- [x] F64Eq(@jeffcharles)
- [x] F64Ne(@jeffcharles)
- [x] F64Lt(@jeffcharles)
- [x] F64Gt(@jeffcharles)
- [x] F64Le(@jeffcharles)
- [x] F64Ge(@jeffcharles)
- [x] I32Clz (@jeffcharles)
- [x] I32Ctz (@jeffcharles)
- [x] I32Popcnt (@itsrainy)
- [x] I32And (@jeffcharles)
- [x] I32Or (@jeffcharles)
- [x] I32Xor (@jeffcharles)
- [x] I32Shl (@jeffcharles)
- [x] I32ShrS (@jeffcharles)
- [x] I32ShrU (@jeffcharles)
- [x] I32Rotl (@jeffcharles)
- [x] I32Rotr (@jeffcharles)
- [x] I64Clz (@jeffcharles)
- [x] I64Ctz (@jeffcharles)
- [x] I64Popcnt (@itsrainy)
- [x] I64And (@jeffcharles)
- [x] I64Or (@jeffcharles)
- [x] I64Xor (@jeffcharles)
- [x] I64Shl (@jeffcharles)
- [x] I64ShrS (@jeffcharles)
- [x] I64ShrU (@jeffcharles)
- [x] I64Rotl (@jeffcharles)
- [x] I64Rotr (@jeffcharles)
- [x] F32Abs (@elliottt)
- [x] F32Neg (@elliottt)
- [x] F32Ceil (@elliottt)
- [x] F32Floor (@elliottt)
- [x] F32Trunc (@elliottt)
- [x] F32Nearest (@elliottt)
- [x] F32Sqrt (@jeffcharles)
- [x] F32Add (@jeffcharles)
- [x] F32Sub (@jeffcharles)
- [x] F32Mul (@jeffcharles)
- [x] F32Div (@jeffcharles)
- [x] F32Min (@jeffcharles)
- [x] F32Max (@jeffcharles )
- [x] F32Copysign (@jeffcharles)
- [x] F64Abs (@elliottt)
- [x] F64Neg (@elliottt)
- [x] F64Ceil (@elliottt)
- [x] F64Floor (@elliottt)
- [x] F64Trunc (@elliottt)
- [x] F64Nearest (@elliottt)
- [x] F64Sqrt (@jeffcharles)
- [x] F64Add (@jeffcharles)
- [x] F64Sub (@jeffcharles)
- [x] F64Mul (@jeffcharles)
- [x] F64Div (@jeffcharles)
- [x] F64Min (@jeffcharles)
- [x] F64Max (@jeffcharles)
- [x] F64Copysign (@jeffcharles)
- [x] I32WrapI64 (@jeffcharles)
- [x] I32TruncF32S (@jeffcharles)
- [x] I32TruncF32U (@jeffcharles)
- [x] I32TruncF64S (@jeffcharles)
- [x] I32TruncF64U (@jeffcharles)
- [x] I64ExtendI32S(@jeffcharles)
- [x] I64ExtendI32U(@jeffcharles)
- [x] I64TruncF32S (@jeffcharles)
- [x] I64TruncF32U (@jeffcharles)
- [x] I64TruncF64S (@jeffcharles)
- [x] I64TruncF64U (@jeffcharles)
- [x] F32ConvertI32S (@jeffcharles)
- [x] F32ConvertI32U (@jeffcharles)
- [x] F32ConvertI64S (@jeffcharles)
- [x] F32ConvertI64U (@jeffcharles)
- [x] F32DemoteF64 (@jeffcharles)
- [x] F64ConvertI32S (@jeffcharles)
- [x] F64ConvertI32U (@jeffcharles)
- [x] F64ConvertI64S (@jeffcharles)
- [x] F64ConvertI64U (@jeffcharles)
- [x] F64PromoteF32 (@jeffcharles)
- [x] I32ReinterpretF32 (@jeffcharles)
- [x] I64ReinterpretF64 (@jeffcharles)
- [x] F32ReinterpretI32 (@jeffcharles)
- [x] F64ReinterpretI64 (@jeffcharles)
- [x] I32Extend8S(@jeffcharles)
- [x] I32Extend16S (@jeffcharles)
- [x] I64Extend8S(@jeffcharles)
- [x] I64Extend16S(@jeffcharles)
- [x] I64Extend32S(@jeffcharles)
- [x] MemoryInit (@saulecabrera)
- [x] DataDrop (@saulecabrera)
- [x] MemoryCopy (@saulecabrera)
- [x] MemoryFill (@saulecabrera)
- [x] TableInit (@saulecabrera)
- [x] ElemDrop (@saulecabrera)
- [x] TableFill (@saulecabrera)
- [x] TableCopy (@saulecabrera)
- [x] TableGet (@saulecabrera)
- [x] TableSet (@saulecabrera)
- [x] TableGrow (@saulecabrera)
- [x] TableSize (@saulecabrera)
Proposals
- [x] Multi-Value (@saulecabrera)
- [x] Functions
- [x] Blocks
Last updated: Dec 23 2024 at 12:05 UTC