| 77 | } |
| 78 | |
| 79 | bool Opcode::IsEnabled(const Features& features) const { |
| 80 | switch (enum_) { |
| 81 | case Opcode::Try: |
| 82 | case Opcode::Catch: |
| 83 | case Opcode::Delegate: |
| 84 | case Opcode::Throw: |
| 85 | case Opcode::ThrowRef: |
| 86 | case Opcode::TryTable: |
| 87 | case Opcode::Rethrow: |
| 88 | return features.exceptions_enabled(); |
| 89 | |
| 90 | case Opcode::ReturnCallIndirect: |
| 91 | case Opcode::ReturnCall: |
| 92 | return features.tail_call_enabled(); |
| 93 | |
| 94 | case Opcode::I32TruncSatF32S: |
| 95 | case Opcode::I32TruncSatF32U: |
| 96 | case Opcode::I32TruncSatF64S: |
| 97 | case Opcode::I32TruncSatF64U: |
| 98 | case Opcode::I64TruncSatF32S: |
| 99 | case Opcode::I64TruncSatF32U: |
| 100 | case Opcode::I64TruncSatF64S: |
| 101 | case Opcode::I64TruncSatF64U: |
| 102 | return features.sat_float_to_int_enabled(); |
| 103 | |
| 104 | case Opcode::I32Extend8S: |
| 105 | case Opcode::I32Extend16S: |
| 106 | case Opcode::I64Extend8S: |
| 107 | case Opcode::I64Extend16S: |
| 108 | case Opcode::I64Extend32S: |
| 109 | return features.sign_extension_enabled(); |
| 110 | |
| 111 | case Opcode::MemoryAtomicNotify: |
| 112 | case Opcode::MemoryAtomicWait32: |
| 113 | case Opcode::MemoryAtomicWait64: |
| 114 | case Opcode::AtomicFence: |
| 115 | case Opcode::I32AtomicLoad: |
| 116 | case Opcode::I64AtomicLoad: |
| 117 | case Opcode::I32AtomicLoad8U: |
| 118 | case Opcode::I32AtomicLoad16U: |
| 119 | case Opcode::I64AtomicLoad8U: |
| 120 | case Opcode::I64AtomicLoad16U: |
| 121 | case Opcode::I64AtomicLoad32U: |
| 122 | case Opcode::I32AtomicStore: |
| 123 | case Opcode::I64AtomicStore: |
| 124 | case Opcode::I32AtomicStore8: |
| 125 | case Opcode::I32AtomicStore16: |
| 126 | case Opcode::I64AtomicStore8: |
| 127 | case Opcode::I64AtomicStore16: |
| 128 | case Opcode::I64AtomicStore32: |
| 129 | case Opcode::I32AtomicRmwAdd: |
| 130 | case Opcode::I64AtomicRmwAdd: |
| 131 | case Opcode::I32AtomicRmw8AddU: |
| 132 | case Opcode::I32AtomicRmw16AddU: |
| 133 | case Opcode::I64AtomicRmw8AddU: |
| 134 | case Opcode::I64AtomicRmw16AddU: |
| 135 | case Opcode::I64AtomicRmw32AddU: |
| 136 | case Opcode::I32AtomicRmwSub: |
no outgoing calls