| 395 | } |
| 396 | |
| 397 | uint32_t Opcode::GetSimdLaneCount() const { |
| 398 | switch (enum_) { |
| 399 | case Opcode::I8X16ExtractLaneS: |
| 400 | case Opcode::I8X16ExtractLaneU: |
| 401 | case Opcode::I8X16ReplaceLane: |
| 402 | case Opcode::V128Load8Lane: |
| 403 | case Opcode::V128Store8Lane: |
| 404 | return 16; |
| 405 | break; |
| 406 | case Opcode::I16X8ExtractLaneS: |
| 407 | case Opcode::I16X8ExtractLaneU: |
| 408 | case Opcode::I16X8ReplaceLane: |
| 409 | case Opcode::V128Load16Lane: |
| 410 | case Opcode::V128Store16Lane: |
| 411 | return 8; |
| 412 | break; |
| 413 | case Opcode::F32X4ExtractLane: |
| 414 | case Opcode::F32X4ReplaceLane: |
| 415 | case Opcode::I32X4ExtractLane: |
| 416 | case Opcode::I32X4ReplaceLane: |
| 417 | case Opcode::V128Load32Lane: |
| 418 | case Opcode::V128Store32Lane: |
| 419 | return 4; |
| 420 | break; |
| 421 | case Opcode::F64X2ExtractLane: |
| 422 | case Opcode::F64X2ReplaceLane: |
| 423 | case Opcode::I64X2ExtractLane: |
| 424 | case Opcode::I64X2ReplaceLane: |
| 425 | case Opcode::V128Load64Lane: |
| 426 | case Opcode::V128Store64Lane: |
| 427 | return 2; |
| 428 | break; |
| 429 | default: |
| 430 | WABT_UNREACHABLE; |
| 431 | } |
| 432 | } |
| 433 | |
| 434 | // Get the byte sequence for this opcode, including prefix. |
| 435 | std::vector<uint8_t> Opcode::GetBytes() const { |
no outgoing calls
no test coverage detected