From 55463b67197c059e2e8d85670aaa7df357c3cdc6 Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Thu, 18 Jun 2026 01:34:48 -0400 Subject: [PATCH] rexcode/arm32: VMOV (ARM core register to scalar) Dd[lane], Rt New VMOV_LANE_8/16/32 encodings: Dd at bits 19:16+bit7, lane bits per element size (.8 = bit21:bit6:bit5 with bit22 size marker; .16 = bit21:bit6 with bit5 marker; .32 = bit21). Verify round-trips all three sizes; spot-checked .8 byte-exact incl. max lane; 600 tests green. --- core/rexcode/arm32/decoder.odin | 11 + core/rexcode/arm32/encoder.odin | 12 + core/rexcode/arm32/encoding_types.odin | 7 + core/rexcode/arm32/mnemonic_builders.odin | 4 + .../arm32/tablegen/encoding_table.odin | 7 + .../tablegen/generated/decode_tables.odin | 1545 +++++++++-------- .../tablegen/generated/encode_tables.odin | 498 +++--- .../arm32/tables/arm32.bucket_list.bin | Bin 10798 -> 10810 bytes .../arm32/tables/arm32.encode_forms.bin | Bin 35028 -> 35091 bytes .../arm32/tables/arm32.encode_runs.bin | Bin 5088 -> 5088 bytes core/rexcode/arm32/tables/arm32.entries.bin | Bin 35028 -> 35091 bytes core/rexcode/arm32/tables/arm32.form_idx.bin | Bin 3336 -> 3342 bytes core/rexcode/arm32/tables/arm32.idx_a32.bin | Bin 1024 -> 1024 bytes core/rexcode/arm32/tables/arm32.idx_t16.bin | Bin 256 -> 256 bytes core/rexcode/arm32/tables/arm32.idx_t32.bin | Bin 512 -> 512 bytes .../arm32/tables/arm32.idx_t32_sub.bin | Bin 16384 -> 16384 bytes 16 files changed, 1066 insertions(+), 1018 deletions(-) diff --git a/core/rexcode/arm32/decoder.odin b/core/rexcode/arm32/decoder.odin index 1fbc09ee1..dde605999 100644 --- a/core/rexcode/arm32/decoder.odin +++ b/core/rexcode/arm32/decoder.odin @@ -341,6 +341,17 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op return op_dpr_lane(Register(REG_DPR | u16(word & 0x7)), u8(lane)) case .NEON_VM_SCALAR32: return op_dpr_lane(Register(REG_DPR | u16(word & 0xF)), u8((word >> 5) & 1)) + case .VMOV_LANE_8, .VMOV_LANE_16, .VMOV_LANE_32: + n := ((word >> 7) & 1) << 4 | ((word >> 16) & 0xF) + lane: u32 = 0 + if enc == .VMOV_LANE_8 { + lane = ((word >> 21) & 1) << 2 | ((word >> 6) & 1) << 1 | ((word >> 5) & 1) + } else if enc == .VMOV_LANE_16 { + lane = ((word >> 21) & 1) << 1 | ((word >> 6) & 1) + } else { + lane = (word >> 21) & 1 + } + return op_dpr_lane(Register(REG_DPR | u16(n)), u8(lane)) case .VD_Q: n := (((word >> 22) & 1) << 4 | ((word >> 12) & 0xF)) >> 1 return op_reg(Register(REG_QPR | u16(n))) diff --git a/core/rexcode/arm32/encoder.odin b/core/rexcode/arm32/encoder.odin index 93f16d722..2181a40a8 100644 --- a/core/rexcode/arm32/encoder.odin +++ b/core/rexcode/arm32/encoder.odin @@ -424,6 +424,18 @@ pack_operand_inline :: #force_inline proc( case .NEON_VM_SCALAR32: // Dm in D0..D15 at bits 3:0; lane = bit5. return (u32(reg_hw(op.reg)) & 0xF) | (u32(op.lane) & 1) << 5 + case .VMOV_LANE_8, .VMOV_LANE_16, .VMOV_LANE_32: + n := u32(reg_hw(op.reg)) & 0x1F // Dd + v := (n & 0xF) << 16 | ((n >> 4) & 1) << 7 + l := u32(op.lane) + if enc == .VMOV_LANE_8 { + v |= ((l >> 2) & 1) << 21 | ((l >> 1) & 1) << 6 | (l & 1) << 5 + } else if enc == .VMOV_LANE_16 { + v |= ((l >> 1) & 1) << 21 | (l & 1) << 6 + } else { + v |= (l & 1) << 21 + } + return v case .VFP_IMM8: // Run the VFP 8-bit float encoder; the user supplies the wire-format // 32-bit float bit pattern (for F32). The encoder finds the abcdefgh. diff --git a/core/rexcode/arm32/encoding_types.odin b/core/rexcode/arm32/encoding_types.odin index 69cefae04..9569b5b13 100644 --- a/core/rexcode/arm32/encoding_types.odin +++ b/core/rexcode/arm32/encoding_types.odin @@ -305,6 +305,13 @@ Operand_Encoding :: enum u8 { // .32: Dm in D0..D15 at bits 3:0, lane = bit5 NEON_VM_SCALAR16, NEON_VM_SCALAR32, + // VMOV (core register to scalar) destination Dd[lane]: Dd at bits 19:16 + + // bit 7; the lane bits depend on element size: + // .8 lane[2:0] = bit22 : bit21 : bit5 .16 lane[1:0] = bit21 : bit6 + // .32 lane[0] = bit21 + VMOV_LANE_8, + VMOV_LANE_16, + VMOV_LANE_32, VFP_IMM8, // VFP immediate (VMOV.F32/F64 #imm) NEON_IMM8_ABCDEFGH, // bits 18-16 (abc) + bits 3-0 (defgh) NEON_CMODE, // bits 11-8 (cmode for VMOV/VMVN immediate) diff --git a/core/rexcode/arm32/mnemonic_builders.odin b/core/rexcode/arm32/mnemonic_builders.odin index 018ae3e9d..a4620e924 100644 --- a/core/rexcode/arm32/mnemonic_builders.odin +++ b/core/rexcode/arm32/mnemonic_builders.odin @@ -958,6 +958,8 @@ emit_vdup_d_r :: #force_inline proc(instructions: ^[dynamic]I emit_vdup_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, lane: u8) { append(instructions, inst_vdup_d_dlane(dst, src, lane)) } inst_vswp_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VSWP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } emit_vswp_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vswp_d_d(dst, src)) } +inst_vmov_lane_dlane_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_reg(src), {}, {}}} } +emit_vmov_lane_dlane_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register) { append(instructions, inst_vmov_lane_dlane_r(dst, lane, src)) } inst_vld1_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } inst_vld1_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}}} } emit_vld1_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld1_dlist_mem(regs, src)) } @@ -2209,6 +2211,8 @@ inst_vdup :: proc{ inst_vdup_d_r, inst_vdup_d_dlane emit_vdup :: proc{ emit_vdup_d_r, emit_vdup_d_dlane } inst_vswp :: inst_vswp_d_d emit_vswp :: emit_vswp_d_d +inst_vmov_lane :: inst_vmov_lane_dlane_r +emit_vmov_lane :: emit_vmov_lane_dlane_r inst_vld1 :: proc{ inst_vld1_dlist_mem, inst_vld1_dlane_mem } emit_vld1 :: proc{ emit_vld1_dlist_mem, emit_vld1_dlane_mem } inst_vld2 :: inst_vld2_dlist_mem diff --git a/core/rexcode/arm32/tablegen/encoding_table.odin b/core/rexcode/arm32/tablegen/encoding_table.odin index dfc550d58..59b5b723d 100644 --- a/core/rexcode/arm32/tablegen/encoding_table.odin +++ b/core/rexcode/arm32/tablegen/encoding_table.odin @@ -3680,6 +3680,13 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ {.VQRDMULH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR32, .NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, {.VQRDMULH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR32, .NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, }, + // VMOV (ARM core register to scalar): Dd[lane], Rt. The lane bits depend on + // the element size (see VMOV_LANE_8/16/32); bit22/bit5 carry the size. + .VMOV_LANE = { + {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_8, .RT_A32, .NONE, .NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {}}, + {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_16, .RT_A32, .NONE, .NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {}}, + {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_32, .RT_A32, .NONE, .NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {}}, + }, // SPECGEN:BEGIN .VADDL = { diff --git a/core/rexcode/arm32/tablegen/generated/decode_tables.odin b/core/rexcode/arm32/tablegen/generated/decode_tables.odin index 7d6157997..d326d0b61 100644 --- a/core/rexcode/arm32/tablegen/generated/decode_tables.odin +++ b/core/rexcode/arm32/tablegen/generated/decode_tables.odin @@ -8,7 +8,7 @@ package rexcode_arm32_generated import lib "../.." @(rodata) -DECODE_ENTRIES := [1668]lib.Decode_Entry{ +DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {} }, { .AND, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {} }, { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {} }, @@ -183,8 +183,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {} }, { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {} }, { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {} }, { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {} }, { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {} }, { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {} }, { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {} }, @@ -215,8 +215,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {} }, { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {} }, { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {} }, { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {} }, { .VFMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {} }, { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {} }, { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {} }, @@ -230,8 +230,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {} }, { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {} }, { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {} }, { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {} }, { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {} }, { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {} }, @@ -244,8 +244,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {} }, { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {} }, { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {} }, { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {} }, { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {} }, @@ -283,8 +283,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {} }, { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {} }, { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {} }, { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {} }, { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {} }, @@ -370,40 +370,40 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {} }, { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {} }, { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E70, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800050, 0xFEB80FD0, .NEON, .A32, {} }, { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800F50, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E50, 0xFEB80FD0, .NEON, .A32, {} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E70, 0xFEB80FD0, .NEON, .A32, {} }, { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800850, 0xFEB80FD0, .NEON, .A32, {} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E50, 0xFEB80FD0, .NEON, .A32, {} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800050, 0xFEB80FD0, .NEON, .A32, {} }, { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {} }, { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {} }, { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {} }, { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800070, 0xFEB80FD0, .NEON, .A32, {} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800870, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E10, 0xFEB80F90, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800F10, 0xFEB80F90, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C10, 0xFEB80F90, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800410, 0xFEB80F90, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800610, 0xFEB80F90, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFEB80F90, .NEON, .A32, {} }, { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E30, 0xFEB80F90, .NEON, .A32, {} }, { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800210, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800610, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800010, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800F10, 0xFEB80F90, .NEON, .A32, {} }, { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800D10, 0xFEB80F90, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800010, 0xFEB80F90, .NEON, .A32, {} }, { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800810, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800410, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E10, 0xFEB80F90, .NEON, .A32, {} }, { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {} }, { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {} }, { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {} }, { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800430, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800230, 0xFEB80F90, .NEON, .A32, {} }, { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800030, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800830, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800630, 0xFEB80F90, .NEON, .A32, {} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800230, 0xFEB80F90, .NEON, .A32, {} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C30, 0xFEB80F90, .NEON, .A32, {} }, { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800D30, 0xFEB80F90, .NEON, .A32, {} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A30, 0xFEB80F90, .NEON, .A32, {} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800830, 0xFEB80F90, .NEON, .A32, {} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800630, 0xFEB80F90, .NEON, .A32, {} }, { .VQSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {} }, { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {} }, { .VSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {} }, @@ -466,8 +466,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A008C0, 0xFFB00F50, .NEON, .A32, {} }, { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {} }, { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A000C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A004C0, 0xFFB00F50, .NEON, .A32, {} }, { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {} }, + { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A004C0, 0xFFB00F50, .NEON, .A32, {} }, { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {} }, { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {} }, { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {} }, @@ -530,8 +530,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {} }, { .VEOR, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {} }, { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {} }, { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {} }, { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {} }, { .VACGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {} }, @@ -585,8 +585,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .DBG, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {} }, { .HINT, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {} }, { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {} }, { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {} }, { .VACLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {} }, { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {} }, { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {} }, @@ -690,10 +690,10 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {} }, { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {} }, { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A008C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {} }, { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A000C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {} }, + { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {} }, { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A004C0, 0xFFB00F50, .NEON, .A32, {} }, + { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {} }, { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {} }, { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {} }, { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {} }, @@ -704,12 +704,12 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {} }, { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {} }, + { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {} }, + { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {} }, + { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRECPE_F, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRECPE_F, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {} }, { .VRSQRTE_F, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, @@ -718,26 +718,26 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .SHA1SU1, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {} }, { .SHA256SU0, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {} }, { .VCVT_BF16, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50300, 0xFFB30FD0, .NEON, .A32, {} }, { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B50340, 0xFFB30FD0, .NEON, .A32, {} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50300, 0xFFB30FD0, .NEON, .A32, {} }, { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10340, 0xFFB30FD0, .NEON, .A32, {} }, { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90740, 0xFFB30FD0, .NEON, .A32, {} }, { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90700, 0xFFB30FD0, .NEON, .A32, {} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90740, 0xFFB30FD0, .NEON, .A32, {} }, { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90340, 0xFFB30FD0, .NEON, .A32, {} }, { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B907C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90380, 0xFFB30FD0, .NEON, .A32, {} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B907C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10380, 0xFFB30FD0, .NEON, .A32, {} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50380, 0xFFB30FD0, .NEON, .A32, {} }, { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B503C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90780, 0xFFB30FD0, .NEON, .A32, {} }, { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B903C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B103C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10380, 0xFFB30FD0, .NEON, .A32, {} }, { .VMVN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VMVN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60200, 0xFFB30FD0, .NEON, .A32, {} }, { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20200, 0xFFB30FD0, .NEON, .A32, {} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60200, 0xFFB30FD0, .NEON, .A32, {} }, { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0200, 0xFFB30FD0, .NEON, .A32, {} }, { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0280, 0xFFB30FD0, .NEON, .A32, {} }, { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA02C0, 0xFFB30FD0, .NEON, .A32, {} }, @@ -748,160 +748,160 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0240, 0xFFB30FD0, .NEON, .A32, {} }, { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20240, 0xFFB30FD0, .NEON, .A32, {} }, { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40200, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00280, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00200, 0xFFB30FD0, .NEON, .A32, {} }, { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80200, 0xFFB30FD0, .NEON, .A32, {} }, { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40200, 0xFFB30FD0, .NEON, .A32, {} }, { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {} }, { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {} }, { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B60300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3BA0300, 0xFFB30FD0, .NEON, .A32, {} }, { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B20300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40400, 0xFFB30FD0, .NEON, .A32, {} }, + { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3BA0300, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00400, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00440, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80440, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40440, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40400, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B804C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40480, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80480, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCNT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VCNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV16, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCNT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV16, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV16, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40080, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B400C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00040, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00000, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80000, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00040, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80000, 0xFFB30FD0, .NEON, .A32, {} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B200C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B600C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFB30FD0, .NEON, .A32, {} }, { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20080, 0xFFB30FD0, .NEON, .A32, {} }, { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BA0080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B200C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFB30FD0, .NEON, .A32, {} }, { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20100, 0xFFB30FD0, .NEON, .A32, {} }, { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20140, 0xFFB30FD0, .NEON, .A32, {} }, { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60100, 0xFFB30FD0, .NEON, .A32, {} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20140, 0xFFB30FD0, .NEON, .A32, {} }, { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B201C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA01C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60180, 0xFFB30FD0, .NEON, .A32, {} }, { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B601C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSWP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {} }, + { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60180, 0xFFB30FD0, .NEON, .A32, {} }, + { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20180, 0xFFB30FD0, .NEON, .A32, {} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA01C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VSWP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {} }, + { .VSWP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {} }, { .AESE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {} }, { .AESD, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {} }, { .AESMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {} }, { .AESIMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {} }, - { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90540, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90500, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10100, 0xFFB30FD0, .NEON, .A32, {} }, { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10080, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10100, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90500, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90540, 0xFFB30FD0, .NEON, .A32, {} }, { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90480, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10080, 0xFFB30FD0, .NEON, .A32, {} }, { .VCGE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B904C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VCGE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B100C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10040, 0xFFB30FD0, .NEON, .A32, {} }, { .VCGT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90400, 0xFFB30FD0, .NEON, .A32, {} }, { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90440, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10040, 0xFFB30FD0, .NEON, .A32, {} }, { .VCGT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B101C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90580, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B905C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B101C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90580, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10180, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90600, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10200, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10240, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90640, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90600, 0xFFB30FD0, .NEON, .A32, {} }, { .VTBL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {} }, { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {} }, { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {} }, { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {} }, { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {} }, { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {} }, { .VTBX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {} }, - { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00C00, 0xFFB00FD0, .NEON, .A32, {} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {} }, { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B00C40, 0xFFB00FD0, .NEON, .A32, {} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00C00, 0xFFB00FD0, .NEON, .A32, {} }, { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true} }, { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {} }, { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {} }, { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000200, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000600, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000A00, 0xFFF00F00, .NEON, .A32, {} }, { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000700, 0xFFF00F00, .NEON, .A32, {} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000900, 0xFFF00F00, .NEON, .A32, {} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000200, 0xFFF00F00, .NEON, .A32, {} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000A00, 0xFFF00F00, .NEON, .A32, {} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000600, 0xFFF00F00, .NEON, .A32, {} }, { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000300, 0xFFF00F00, .NEON, .A32, {} }, { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000800, 0xFFF00F00, .NEON, .A32, {} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000900, 0xFFF00F00, .NEON, .A32, {} }, { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000500, 0xFFF00F00, .NEON, .A32, {} }, { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000400, 0xFFF00F00, .NEON, .A32, {} }, - { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000000, 0xFFF00F00, .NEON, .A32, {} }, { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000100, 0xFFF00F00, .NEON, .A32, {} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000000, 0xFFF00F00, .NEON, .A32, {} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200600, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200700, 0xFFF00F00, .NEON, .A32, {} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200A00, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200700, 0xFFF00F00, .NEON, .A32, {} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200200, 0xFFF00F00, .NEON, .A32, {} }, { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200900, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200300, 0xFFF00F00, .NEON, .A32, {} }, { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200800, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200400, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200300, 0xFFF00F00, .NEON, .A32, {} }, { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200500, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200000, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200400, 0xFFF00F00, .NEON, .A32, {} }, { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200100, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00F00, .NEON, .A32, {} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200000, 0xFFF00F00, .NEON, .A32, {} }, { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800800, 0xFFB00F00, .NEON, .A32, {} }, { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00F00, .NEON, .A32, {} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00F00, .NEON, .A32, {} }, { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800900, 0xFFB00D00, .NEON, .A32, {} }, - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800500, 0xFFB00D00, .NEON, .A32, {} }, { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800100, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800600, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800200, 0xFFB00D00, .NEON, .A32, {} }, + { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800500, 0xFFB00D00, .NEON, .A32, {} }, { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800A00, 0xFFB00D00, .NEON, .A32, {} }, - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800B00, 0xFFB00D00, .NEON, .A32, {} }, + { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800200, 0xFFB00D00, .NEON, .A32, {} }, + { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800600, 0xFFB00D00, .NEON, .A32, {} }, { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800300, 0xFFB00D00, .NEON, .A32, {} }, { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800700, 0xFFB00D00, .NEON, .A32, {} }, - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00C00, .NEON, .A32, {} }, + { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800B00, 0xFFB00D00, .NEON, .A32, {} }, { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800800, 0xFFB00C00, .NEON, .A32, {} }, { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00C00, .NEON, .A32, {} }, + { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00C00, .NEON, .A32, {} }, { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04800000, 0x0F700000, .BASE, .A32, {} }, { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04900000, 0x0F700000, .BASE, .A32, {} }, { .VLD2R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {} }, { .VLD3R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {} }, { .VLD4R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00F00, .NEON, .A32, {} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4A00C00, 0xFFB00F00, .NEON, .A32, {} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00F00, .NEON, .A32, {} }, { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00F00, .NEON, .A32, {} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00F00, .NEON, .A32, {} }, + { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00900, 0xFFB00D00, .NEON, .A32, {} }, { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00500, 0xFFB00D00, .NEON, .A32, {} }, { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00100, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00900, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00A00, 0xFFB00D00, .NEON, .A32, {} }, { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00600, 0xFFB00D00, .NEON, .A32, {} }, + { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00A00, 0xFFB00D00, .NEON, .A32, {} }, { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00200, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00700, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00300, 0xFFB00D00, .NEON, .A32, {} }, { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00B00, 0xFFB00D00, .NEON, .A32, {} }, + { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00300, 0xFFB00D00, .NEON, .A32, {} }, + { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00700, 0xFFB00D00, .NEON, .A32, {} }, { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00C00, .NEON, .A32, {} }, - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00C00, .NEON, .A32, {} }, { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00C00, .NEON, .A32, {} }, + { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00C00, .NEON, .A32, {} }, { .STRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04A00000, 0x0F700000, .BASE, .A32, {} }, { .LDRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04B00000, 0x0F700000, .BASE, .A32, {} }, { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04C00000, 0x0F700000, .BASE, .A32, {} }, @@ -1078,6 +1078,8 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VPUSH, {.DPR_LIST,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {} }, { .VPUSH, {.SPR_LIST,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {} }, { .VMOV, {.SPR,.GPR,.NONE,.NONE}, {.VN_S,.RT_A32,.NONE,.NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {} }, + { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_32,.RT_A32,.NONE,.NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {} }, + { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_16,.RT_A32,.NONE,.NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {} }, { .VCMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.IMM}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {} }, { .VCMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {} }, { .VSEL, {.DPR,.DPR,.DPR,.COND}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {} }, @@ -1116,6 +1118,7 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {} }, { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {} }, { .VSUB, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {} }, + { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_8,.RT_A32,.NONE,.NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {} }, { .VSUDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {} }, { .VUSDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {} }, { .VMAXNM, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {} }, @@ -1193,14 +1196,14 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VRINTX, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {} }, { .VRINTX, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {} }, { .VJCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, + { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, { .VCVT_FIXED, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {} }, { .VCVT_FIXED, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {} }, + { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, + { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, + { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, + { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, { .VCMP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40A40, 0x0FBF0F50, .VFPV2, .A32, {} }, { .VCMP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB40B40, 0x0FBF0F50, .VFPV2, .A32, {} }, { .VCMP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40940, 0x0FBF0F50, .HALF_FP, .A32, {} }, @@ -1270,12 +1273,12 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ { .VMOV_2GPR_Q, {.QPR_ELEM,.QPR_ELEM,.GPR,.GPR}, {.VD_Q,.VD_Q,.RT_T32,.RT2_T32}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true} }, { .VLDRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, { .VSTRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, - { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, { .VCX1, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, { .VCX2, {.IMM_COPROC,.SPR,.SPR,.IMM}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true} }, { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true} }, { .VCX3, {.IMM_COPROC,.SPR,.SPR,.SPR}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true} }, { .VADDLV, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true} }, { .VADDLVA, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true} }, { .VMAXNMV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, @@ -1680,7 +1683,7 @@ DECODE_ENTRIES := [1668]lib.Decode_Entry{ } @(rodata) -DECODE_FORM_IDX := [1668]u16{ +DECODE_FORM_IDX := [1671]u16{ 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 1, 5, 4, 0, 2, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 5, 4, 0, 0, @@ -1691,52 +1694,52 @@ DECODE_FORM_IDX := [1668]u16{ 2, 1, 0, 0, 0, 3, 3, 3, 5, 4, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 2, 1, - 1, 1, 1, 0, 0, 0, 5, 4, 1, 1, 1, 1, 1, 1, 9, 14, + 1, 1, 1, 0, 0, 0, 5, 4, 1, 1, 1, 1, 1, 1, 14, 9, 8, 6, 10, 4, 3, 3, 1, 4, 4, 3, 3, 1, 3, 7, 3, 3, - 0, 0, 9, 3, 3, 1, 4, 1, 1, 0, 0, 13, 5, 5, 3, 9, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 10, 9, 7, 4, + 0, 0, 9, 3, 3, 1, 4, 1, 1, 0, 0, 13, 5, 5, 9, 3, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 10, 4, 9, 7, 4, 4, 5, 5, 2, 4, 4, 1, 4, 9, 4, 4, 2, 2, 11, 4, 4, 2, 0, 3, 6, 6, 4, 1, 1, 1, 1, 0, 1, 1, 0, 1, 8, - 1, 1, 1, 10, 1, 1, 1, 1, 1, 3, 5, 5, 5, 11, 14, 10, + 1, 1, 10, 1, 1, 1, 1, 1, 1, 3, 5, 5, 5, 11, 14, 10, 8, 10, 4, 5, 5, 6, 6, 3, 5, 5, 1, 5, 5, 5, 4, 4, 5, 9, 5, 1, 4, 0, 7, 13, 7, 5, 9, 3, 2, 2, 2, 2, 1, 2, 2, 0, 2, 2, 2, 2, 8, 2, 2, 2, 2, 0, 2, 0, 7, 12, 4, 7, 7, 1, 11, 5, 6, 0, 8, 3, 3, 3, 0, 10, - 3, 3, 0, 3, 0, 3, 0, 0, 0, 25, 21, 24, 23, 22, 0, 0, - 0, 0, 10, 11, 18, 20, 11, 13, 10, 19, 17, 14, 15, 12, 16, 6, - 0, 0, 0, 4, 8, 3, 2, 6, 7, 5, 9, 0, 0, 0, 0, 0, + 3, 3, 0, 3, 0, 3, 0, 0, 0, 24, 25, 22, 23, 21, 0, 0, + 0, 0, 10, 11, 19, 16, 12, 13, 15, 20, 11, 17, 10, 14, 18, 0, + 6, 0, 0, 4, 2, 3, 8, 9, 7, 6, 5, 0, 0, 0, 0, 0, 1, 1, 1, 1, 5, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 1, 2, 2, 1, 4, 1, 4, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 3, 0, 3, 0, 3, 7, 13, 7, 1, 9, 9, 14, 12, 6, 7, 7, 9, 9, 7, 7, 1, 3, 7, 9, 7, 6, 12, 6, 1, 0, 7, 7, 7, 3, 3, 8, 0, 5, 13, 11, - 3, 6, 6, 8, 8, 6, 6, 0, 0, 8, 6, 6, 0, 6, 6, 4, + 3, 6, 6, 8, 8, 6, 6, 0, 0, 6, 8, 6, 0, 6, 6, 4, 3, 3, 3, 6, 2, 2, 0, 0, 9, 9, 11, 10, 4, 7, 2, 2, 2, 1, 4, 11, 8, 8, 10, 0, 6, 3, 4, 0, 0, 0, 0, 1, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 11, 13, 1, 13, 11, 8, 3, 3, 3, 9, 1, 5, 9, 10, 12, 10, + 13, 11, 1, 13, 11, 8, 3, 3, 3, 9, 1, 5, 9, 10, 12, 10, 1, 0, 12, 0, 7, 5, 1, 1, 1, 8, 0, 2, 8, 0, 4, 0, 15, 12, 1, 11, 14, 8, 0, 10, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 3, 3, 3, 1, 1, 2, 2, 2, 0, 0, 0, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 3, 5, 5, 3, 3, 5, - 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 5, 3, 3, 3, - 1, 1, 3, 3, 0, 3, 2, 1, 0, 2, 1, 3, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 3, 6, 5, 4, 9, 8, 7, 2, 3, 9, 4, - 6, 8, 7, 5, 2, 1, 0, 1, 0, 2, 2, 5, 3, 0, 1, 4, - 2, 0, 1, 1, 2, 5, 3, 0, 4, 2, 3, 1, 0, 3, 4, 2, - 5, 4, 3, 1, 0, 2, 2, 1, 4, 5, 3, 0, 0, 1, 1, 0, - 0, 2, 1, 3, 0, 1, 2, 5, 3, 4, 1, 4, 0, 2, 3, 5, - 0, 4, 3, 2, 1, 2, 4, 0, 1, 3, 1, 0, 0, 0, 0, 0, - 3, 2, 0, 1, 0, 2, 3, 1, 1, 2, 3, 0, 1, 0, 2, 3, - 1, 3, 0, 2, 0, 1, 2, 3, 2, 3, 1, 0, 2, 3, 3, 0, - 3, 0, 3, 3, 2, 1, 0, 1, 2, 0, 1, 0, 0, 1, 2, 0, - 1, 3, 1, 2, 0, 0, 1, 0, 1, 4, 6, 5, 2, 1, 0, 1, - 0, 2, 2, 0, 1, 0, 2, 1, 2, 2, 0, 0, 0, 6, 7, 4, - 5, 1, 0, 2, 2, 1, 0, 1, 0, 2, 1, 0, 2, 0, 0, 2, + 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, + 1, 1, 3, 3, 0, 3, 2, 0, 1, 0, 3, 2, 1, 0, 1, 1, + 0, 0, 0, 0, 0, 6, 3, 5, 4, 8, 9, 7, 2, 4, 9, 2, + 3, 6, 8, 7, 5, 1, 0, 0, 1, 2, 2, 5, 3, 0, 1, 4, + 2, 0, 1, 3, 4, 0, 2, 5, 1, 3, 0, 1, 2, 3, 2, 4, + 0, 3, 5, 2, 4, 1, 5, 1, 2, 4, 0, 3, 1, 0, 0, 1, + 1, 2, 3, 0, 3, 0, 1, 5, 4, 2, 5, 3, 4, 1, 0, 2, + 3, 0, 4, 1, 2, 2, 3, 1, 0, 4, 0, 1, 0, 0, 0, 0, + 1, 0, 2, 3, 2, 0, 3, 1, 2, 3, 1, 0, 3, 1, 2, 0, + 2, 0, 1, 3, 0, 1, 2, 3, 2, 1, 0, 3, 3, 2, 3, 0, + 3, 0, 3, 0, 3, 1, 2, 2, 0, 1, 1, 0, 1, 0, 2, 1, + 0, 3, 1, 0, 2, 1, 0, 1, 0, 6, 5, 4, 2, 0, 1, 2, + 0, 1, 0, 1, 2, 2, 1, 0, 2, 2, 0, 0, 0, 4, 6, 5, + 7, 2, 1, 0, 1, 2, 0, 2, 0, 1, 1, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1747,49 +1750,49 @@ DECODE_FORM_IDX := [1668]u16{ 0, 0, 0, 1, 0, 1, 4, 4, 0, 2, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 9, 7, 0, 0, 8, 6, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, - 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 4, 1, 0, 1, - 0, 27, 2, 2, 1, 0, 0, 1, 0, 0, 0, 0, 5, 26, 1, 0, - 0, 1, 0, 0, 1, 1, 0, 0, 2, 0, 1, 1, 0, 2, 2, 0, - 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 2, 2, 1, - 0, 1, 0, 2, 2, 1, 0, 1, 0, 2, 3, 5, 2, 3, 1, 0, - 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, - 1, 0, 2, 1, 0, 9, 7, 6, 8, 3, 2, 4, 0, 1, 5, 0, - 1, 1, 0, 3, 1, 0, 2, 1, 0, 0, 1, 1, 0, 1, 0, 0, - 0, 2, 1, 8, 3, 9, 6, 7, 0, 1, 4, 0, 1, 5, 4, 2, - 3, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 2, 2, 1, 6, 7, 6, 7, 4, 4, 4, 4, 4, - 3, 5, 4, 7, 5, 11, 10, 8, 10, 9, 8, 7, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 0, 0, 0, 0, 7, 2, 2, 2, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 17, 17, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 16, 11, 5, 5, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 4, 2, 1, 1, + 0, 1, 0, 27, 2, 2, 1, 0, 0, 1, 0, 0, 0, 0, 5, 26, + 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 0, 1, 1, 0, 2, + 2, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, + 2, 2, 1, 0, 1, 0, 2, 2, 1, 0, 1, 0, 2, 3, 5, 2, + 3, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, + 0, 1, 0, 1, 0, 2, 1, 0, 9, 7, 6, 8, 3, 2, 4, 0, + 1, 5, 0, 1, 1, 0, 3, 1, 0, 2, 1, 0, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 6, 7, 9, 3, 8, 2, 0, 1, 4, 0, 1, + 5, 4, 2, 3, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 1, 1, 2, 2, 1, 6, 7, 6, 7, 4, 4, + 4, 4, 4, 3, 5, 4, 7, 5, 11, 10, 8, 10, 9, 8, 7, 8, + 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 7, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 11, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 8, 8, 2, 10, 10, 12, 12, 8, 4, 6, 0, 0, 4, 4, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 3, 6, 4, 8, 9, 7, 0, 7, 8, 7, 6, 7, 7, 7, 7, 4, - 3, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 2, 9, 8, 7, 7, 7, 7, 6, 6, 1, 1, 1, 10, - 8, 7, 6, 6, 6, 6, 5, 5, 2, 1, 2, 2, 1, 2, 1, 1, - 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 15, 15, 8, 8, 2, 10, 10, 12, 12, 8, 4, 6, 0, + 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 3, 6, 4, 8, 9, 7, 0, 7, 8, 7, 6, 7, 7, + 7, 7, 4, 3, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 2, 9, 8, 7, 7, 7, 7, 6, 6, 1, + 1, 1, 10, 8, 7, 6, 6, 6, 6, 5, 5, 2, 1, 2, 2, 1, + 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 0, 5, - 5, 5, 4, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 1, 1, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, - 0, 11, 11, 0, 0, 0, 10, 10, 12, 2, 16, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 2, 6, 6, 7, 7, 6, 3, 8, 8, 6, - 6, 6, 6, 3, 4, 3, 6, 6, 6, 3, 3, 3, 2, 0, 2, 1, - 2, 0, 0, 9, 5, 7, 4, 4, 4, 4, 4, 5, 4, 4, 4, 5, - 6, 5, 5, 5, 5, 6, 7, 0, 10, 1, 1, 1, 1, 9, 11, 0, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 5, 5, - 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 1, 0, 5, 5, 5, 4, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 11, 11, 0, 0, 0, 10, 10, 12, 2, 16, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 6, 6, 7, 7, 6, 3, + 8, 8, 6, 6, 6, 6, 3, 4, 3, 6, 6, 6, 3, 3, 3, 2, + 0, 2, 1, 2, 0, 0, 9, 5, 7, 4, 4, 4, 4, 4, 5, 4, + 4, 4, 5, 6, 5, 5, 5, 5, 6, 7, 0, 10, 1, 1, 1, 1, + 9, 11, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, + 1, 5, 5, 1, 1, 1, 2, } @(rodata) -DECODE_BUCKET_LIST := [5399]u16{ +DECODE_BUCKET_LIST := [5405]u16{ 0, 1, 2, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 6, 10, 7, 11, 8, 12, 35, 36, 37, 13, 14, 41, 42, 43, 15, 13, 16, 14, 17, 47, 18, 19, 51, 52, 53, 20, 21, 18, 19, 22, 23, 24, 25, 22, 26, @@ -1940,194 +1943,194 @@ DECODE_BUCKET_LIST := [5399]u16{ 1027, 1028, 1022, 1023, 1024, 1041, 1040, 1037, 1042, 1038, 1025, 1043, 1026, 1044, 1045, 1037, 1046, 1038, 1027, 1047, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1025, 1026, 1039, 1037, 1038, 1027, 1028, 1048, 1049, 1051, 1050, 1025, 1026, 1048, 1049, 1052, 1053, - 1027, 1028, 1054, 1055, 1056, 1057, 1058, 1059, 1048, 1049, 1050, 1051, 1025, 1026, 1061, 1060, - 1048, 1049, 1052, 1053, 1027, 1028, 1048, 1049, 1050, 1051, 1025, 1026, 1048, 1049, 1053, 1052, + 1027, 1028, 1054, 1055, 1056, 1057, 1058, 1059, 1048, 1049, 1051, 1050, 1025, 1026, 1060, 1061, + 1048, 1049, 1052, 1053, 1027, 1028, 1048, 1049, 1051, 1050, 1025, 1026, 1048, 1049, 1053, 1052, 1027, 1028, 1054, 1055, 1056, 1057, 1058, 1059, 1048, 1049, 1051, 1050, 1025, 1026, 1048, 1049, - 1052, 1053, 1027, 1028, 1037, 1038, 1063, 1062, 1037, 1038, 1065, 1064, 1066, 1067, 1037, 1038, - 1037, 1038, 1037, 1038, 1063, 1062, 1037, 1038, 1064, 1065, 1037, 1038, 1037, 1038, 1048, 1049, - 1062, 1063, 1048, 1049, 1065, 1064, 1048, 1049, 1048, 1049, 1048, 1049, 1062, 1063, 1048, 1049, - 1065, 1064, 1048, 1049, 1048, 1049, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1037, 1077, - 1076, 1079, 1078, 1038, 1080, 1081, 1082, 1083, 1084, 1071, 1072, 1085, 1037, 1086, 1087, 1088, - 1089, 1038, 1090, 1081, 1091, 1083, 1092, 1093, 1094, 1095, 1072, 1071, 1073, 1096, 1037, 1097, - 1098, 1100, 1099, 1038, 1080, 1081, 1082, 1083, 1072, 1071, 1085, 1101, 1102, 1037, 1104, 1103, - 1106, 1105, 1038, 1090, 1081, 1091, 1083, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1037, 1076, - 1077, 1079, 1078, 1038, 1080, 1081, 1082, 1083, 1071, 1072, 1085, 1037, 1087, 1086, 1089, 1088, - 1038, 1090, 1081, 1091, 1083, 1092, 1093, 1094, 1095, 1071, 1072, 1073, 1096, 1037, 1098, 1097, - 1099, 1100, 1038, 1080, 1081, 1082, 1083, 1072, 1071, 1085, 1101, 1102, 1037, 1103, 1104, 1105, - 1106, 1038, 1090, 1081, 1091, 1083, 1107, 1108, 1110, 1109, 1111, 1112, 1113, 1073, 1114, 1116, - 1115, 1080, 1081, 1082, 1083, 1085, 1117, 1118, 1120, 1119, 1121, 1122, 1090, 1081, 1091, 1083, - 1073, 1123, 1124, 1126, 1125, 1127, 1128, 1080, 1081, 1082, 1083, 1129, 1130, 1131, 1133, 1132, - 1134, 1135, 1136, 1137, 1138, 1139, 1141, 1140, 1143, 1142, 1145, 1144, 1146, 1147, 1148, 1149, - 1151, 1150, 1153, 1152, 1154, 1156, 1155, 1159, 1160, 1157, 1158, 1162, 1164, 1166, 1165, 1163, - 1161, 1168, 1167, 1169, 1170, 1173, 1172, 1171, 1174, 1175, 1176, 1178, 1177, 1179, 1180, 1181, - 1182, 1183, 1185, 1184, 1191, 1188, 1189, 1186, 1190, 1187, 1194, 1193, 1192, 1196, 1195, 1197, - 1198, 1200, 1199, 1085, 1090, 1081, 1091, 1083, 1107, 1108, 1109, 1110, 1112, 1111, 1113, 1201, - 1073, 1114, 1115, 1116, 1080, 1081, 1082, 1083, 1085, 1117, 1118, 1120, 1119, 1122, 1121, 1090, - 1081, 1091, 1083, 1202, 1203, 1073, 1123, 1124, 1125, 1126, 1128, 1127, 1080, 1081, 1082, 1083, - 1204, 1131, 1129, 1130, 1132, 1133, 1134, 1135, 1137, 1136, 1139, 1138, 1140, 1141, 1142, 1143, - 1145, 1144, 1147, 1146, 1148, 1149, 1150, 1151, 1153, 1152, 1156, 1155, 1154, 1157, 1158, 1159, - 1166, 1165, 1163, 1160, 1161, 1162, 1164, 1168, 1167, 1170, 1169, 1171, 1172, 1174, 1173, 1175, - 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1190, 1188, 1189, 1191, 1185, 1184, 1186, 1187, - 1194, 1193, 1192, 1195, 1196, 1197, 1198, 1199, 1200, 1085, 1090, 1081, 1091, 1083, 1037, 1038, - 1205, 1037, 1038, 1205, 1037, 1038, 1205, 1037, 1038, 1205, 1037, 1038, 1205, 1037, 1038, 1205, - 1037, 1038, 1205, 1037, 1038, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 1207, - 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, - 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, - 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, - 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, - 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1380, 1379, 1381, 1382, 1384, - 1383, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, - 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1392, 1391, 1393, 1375, 1376, 1377, 1378, 1380, - 1379, 1381, 1384, 1383, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1424, 1425, 1426, - 1427, 1422, 1423, 1391, 1392, 1393, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, - 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, - 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, - 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, - 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, - 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, - 1534, 1536, 1535, 1537, 1538, 1539, 1540, 1541, 1542, 1267, 1268, 1269, 1270, 1271, 1272, 1543, - 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1277, 1278, - 1279, 1280, 1281, 1282, 1558, 1559, 1560, 1286, 1287, 1288, 1561, 1293, 1294, 1295, 1296, 1297, - 1298, 1302, 1303, 1562, 1304, 1305, 1563, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, - 1315, 1316, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1317, 1572, 1318, 1319, 1320, 1321, - 1573, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, - 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, - 1353, 1354, 1355, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1358, 1359, 1360, 1361, 1582, - 1583, 1584, 1585, 1586, 1587, 1588, 1588, 1589, 1589, 1590, 1590, 1591, 1592, 1593, 1594, 1595, - 1595, 1596, 1596, 1597, 1597, 1598, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, - 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1622, - 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1631, 1632, 1632, 1633, 1633, 1634, 1634, - 1635, 1635, 1636, 1636, 1637, 1637, 1638, 1638, 1639, 1639, 1640, 1640, 1641, 1642, 1643, 1644, - 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, - 1661, 1662, 1662, 1663, 1663, 1664, 1664, 1664, 1665, 1666, 1664, 1667, 1667, 1214, 1215, 1216, - 1217, 1222, 1228, 1218, 1227, 1228, 1227, 1225, 1223, 1225, 1221, 1223, 1211, 1212, 1219, 1228, - 1207, 1208, 1209, 1210, 1213, 1227, 1228, 1227, 1226, 1224, 1220, 1226, 1224, 1228, 1227, 1228, - 1206, 1227, 1228, 1227, 1228, 1227, 1241, 1240, 1233, 1241, 1240, 1247, 1247, 1229, 1230, 1231, - 1232, 1238, 1237, 1246, 1229, 1230, 1231, 1232, 1237, 1238, 1246, 1239, 1239, 1242, 1234, 1242, - 1236, 1244, 1244, 1245, 1245, 1235, 1243, 1243, 1258, 1266, 1265, 1258, 1262, 1263, 1261, 1264, - 1258, 1266, 1265, 1248, 1249, 1250, 1251, 1258, 1262, 1263, 1261, 1264, 1266, 1265, 1262, 1263, - 1261, 1264, 1266, 1265, 1262, 1263, 1261, 1264, 1248, 1249, 1250, 1251, 1255, 1256, 1257, 1260, - 1252, 1253, 1254, 1259, 1255, 1256, 1257, 1260, 1252, 1253, 1254, 1259, 1286, 1287, 1299, 1300, - 1302, 1303, 1304, 1315, 1316, 1319, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, - 1342, 1343, 1366, 1286, 1287, 1299, 1301, 1302, 1303, 1304, 1316, 1319, 1322, 1323, 1326, 1327, - 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1366, 1286, 1287, 1299, 1300, 1302, 1303, 1304, - 1316, 1319, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1366, 1273, - 1274, 1275, 1276, 1286, 1287, 1288, 1299, 1301, 1302, 1303, 1304, 1305, 1314, 1316, 1319, 1322, - 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1366, 1286, 1287, 1300, 1302, - 1303, 1304, 1315, 1316, 1319, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, - 1343, 1362, 1366, 1286, 1287, 1301, 1302, 1303, 1304, 1316, 1319, 1322, 1323, 1326, 1327, 1328, - 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1362, 1366, 1286, 1287, 1300, 1302, 1303, 1304, 1316, - 1319, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1362, 1366, 1273, - 1274, 1275, 1276, 1286, 1287, 1288, 1301, 1302, 1303, 1304, 1305, 1314, 1316, 1319, 1322, 1323, - 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1362, 1366, 1267, 1268, 1283, 1284, - 1285, 1295, 1296, 1297, 1298, 1308, 1309, 1310, 1311, 1324, 1325, 1332, 1333, 1334, 1335, 1336, - 1337, 1338, 1339, 1356, 1357, 1361, 1364, 1367, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, - 1338, 1339, 1364, 1367, 1283, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1364, - 1367, 1293, 1294, 1306, 1307, 1312, 1313, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1339, 1364, 1367, 1283, 1284, 1285, 1295, 1296, 1297, 1298, 1308, 1309, 1310, 1311, 1324, 1325, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1356, 1357, 1361, 1363, 1365, 1367, 1324, 1325, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1363, 1365, 1367, 1269, 1270, 1271, 1272, 1279, - 1280, 1281, 1282, 1283, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1363, 1365, - 1367, 1277, 1278, 1293, 1294, 1306, 1307, 1312, 1313, 1324, 1325, 1332, 1333, 1334, 1335, 1336, - 1337, 1338, 1339, 1363, 1365, 1367, 1289, 1317, 1320, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1354, 1355, 1290, 1317, 1320, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1291, 1318, 1321, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, - 1353, 1354, 1355, 1292, 1318, 1321, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, - 1354, 1355, 1289, 1317, 1320, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, - 1355, 1290, 1317, 1320, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, - 1291, 1318, 1321, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1292, - 1318, 1321, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1358, 1359, - 1360, 1358, 1359, 1360, 1358, 1359, 1360, 1358, 1359, 1360, 1358, 1359, 1360, 1358, 1359, 1360, - 1358, 1359, 1360, 1358, 1359, 1360, 1368, 1370, 1371, 1372, 1382, 1383, 1384, 1392, 1391, 1393, - 1370, 1371, 1373, 1375, 1382, 1384, 1383, 1392, 1391, 1393, 1370, 1371, 1382, 1390, 1392, 1391, - 1393, 1370, 1371, 1382, 1390, 1392, 1391, 1393, 1369, 1371, 1374, 1380, 1379, 1382, 1389, 1392, - 1391, 1393, 1371, 1379, 1380, 1382, 1389, 1391, 1392, 1393, 1371, 1381, 1382, 1392, 1391, 1393, - 1371, 1381, 1382, 1392, 1391, 1393, 1385, 1391, 1392, 1393, 1376, 1385, 1392, 1391, 1393, 1392, - 1391, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1391, 1392, - 1393, 1371, 1382, 1392, 1391, 1393, 1371, 1378, 1382, 1391, 1392, 1393, 1371, 1382, 1391, 1392, - 1393, 1371, 1382, 1391, 1392, 1393, 1371, 1382, 1387, 1391, 1392, 1393, 1371, 1382, 1387, 1392, - 1391, 1393, 1371, 1382, 1388, 1391, 1392, 1393, 1371, 1382, 1388, 1391, 1392, 1393, 1391, 1392, - 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1377, 1392, 1391, 1393, 1386, 1391, 1392, 1393, 1386, - 1392, 1391, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1391, - 1392, 1393, 1391, 1392, 1393, 1422, 1391, 1392, 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1391, - 1392, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1423, 1391, - 1392, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1420, 1391, 1392, 1393, 1392, - 1391, 1393, 1414, 1420, 1392, 1391, 1393, 1392, 1391, 1393, 1418, 1391, 1392, 1393, 1391, 1392, - 1393, 1416, 1417, 1391, 1392, 1393, 1392, 1391, 1393, 1413, 1421, 1392, 1391, 1393, 1391, 1392, - 1393, 1394, 1395, 1396, 1397, 1398, 1400, 1401, 1402, 1403, 1405, 1406, 1407, 1408, 1415, 1421, - 1392, 1391, 1393, 1399, 1404, 1410, 1411, 1412, 1391, 1392, 1393, 1419, 1392, 1391, 1393, 1392, - 1391, 1393, 1409, 1391, 1392, 1393, 1391, 1392, 1393, 1384, 1383, 1391, 1392, 1393, 1375, 1383, - 1384, 1392, 1391, 1393, 1390, 1391, 1392, 1393, 1390, 1391, 1392, 1393, 1380, 1379, 1389, 1391, - 1392, 1393, 1379, 1380, 1389, 1391, 1392, 1393, 1381, 1391, 1392, 1393, 1381, 1391, 1392, 1393, - 1385, 1391, 1392, 1393, 1376, 1385, 1391, 1392, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1392, - 1391, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1378, 1392, - 1391, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1387, 1392, 1391, 1393, 1387, 1392, 1391, 1393, - 1388, 1392, 1391, 1393, 1388, 1391, 1392, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1391, 1392, - 1393, 1377, 1391, 1392, 1393, 1386, 1391, 1392, 1393, 1386, 1391, 1392, 1393, 1391, 1392, 1393, - 1391, 1392, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1422, - 1391, 1392, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1391, - 1392, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1423, 1392, 1391, 1393, 1392, 1391, 1393, 1392, - 1391, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1391, 1392, - 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1391, 1392, 1393, 1424, 1425, 1426, - 1392, 1391, 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1391, 1392, 1393, 1392, 1391, 1393, 1392, - 1391, 1393, 1391, 1392, 1393, 1427, 1391, 1392, 1393, 1431, 1430, 1433, 1432, 1437, 1429, 1428, - 1439, 1443, 1436, 1442, 1445, 1444, 1441, 1439, 1440, 1434, 1435, 1438, 1446, 1447, 1450, 1503, - 1509, 1453, 1503, 1512, 1449, 1504, 1508, 1452, 1504, 1511, 1448, 1505, 1507, 1451, 1505, 1510, - 1506, 1506, 1459, 1460, 1461, 1462, 1463, 1469, 1475, 1481, 1487, 1493, 1455, 1456, 1457, 1458, - 1464, 1470, 1476, 1482, 1488, 1494, 1465, 1471, 1477, 1483, 1489, 1495, 1454, 1467, 1473, 1479, - 1485, 1491, 1497, 1468, 1474, 1480, 1486, 1492, 1498, 1466, 1472, 1478, 1484, 1490, 1496, 1499, - 1513, 1514, 1502, 1517, 1500, 1515, 1501, 1518, 1516, 1540, 1539, 1536, 1537, 1535, 1538, 1540, - 1539, 1536, 1537, 1535, 1538, 1525, 1526, 1527, 1528, 1529, 1530, 1540, 1519, 1520, 1521, 1522, - 1523, 1524, 1531, 1532, 1533, 1534, 1539, 1536, 1537, 1535, 1538, 1525, 1526, 1527, 1528, 1529, - 1530, 1540, 1519, 1520, 1521, 1522, 1523, 1524, 1539, 1536, 1537, 1535, 1538, 1531, 1532, 1533, - 1534, 1557, 1286, 1287, 1302, 1303, 1304, 1563, 1315, 1316, 1568, 1569, 1570, 1571, 1319, 1573, - 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1586, 1286, 1287, 1302, - 1303, 1304, 1563, 1316, 1568, 1569, 1570, 1571, 1319, 1573, 1322, 1323, 1326, 1327, 1328, 1329, - 1330, 1331, 1340, 1341, 1342, 1343, 1586, 1286, 1287, 1302, 1303, 1304, 1563, 1316, 1568, 1569, - 1570, 1571, 1319, 1573, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, - 1586, 1542, 1551, 1552, 1286, 1287, 1288, 1302, 1303, 1304, 1305, 1563, 1314, 1316, 1568, 1569, - 1570, 1571, 1319, 1573, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, - 1586, 1557, 1286, 1287, 1302, 1303, 1304, 1563, 1315, 1316, 1568, 1569, 1570, 1571, 1319, 1573, - 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1582, 1586, 1286, 1287, - 1302, 1303, 1304, 1563, 1316, 1568, 1569, 1570, 1571, 1319, 1573, 1322, 1323, 1326, 1327, 1328, - 1329, 1330, 1331, 1340, 1341, 1342, 1343, 1582, 1586, 1286, 1287, 1302, 1303, 1304, 1563, 1316, - 1568, 1569, 1570, 1571, 1319, 1573, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, 1341, - 1342, 1343, 1582, 1586, 1541, 1551, 1552, 1286, 1287, 1288, 1302, 1303, 1304, 1305, 1563, 1314, - 1316, 1568, 1569, 1570, 1571, 1319, 1573, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331, 1340, - 1341, 1342, 1343, 1582, 1586, 1267, 1268, 1295, 1296, 1297, 1298, 1308, 1309, 1310, 1311, 1564, - 1565, 1566, 1567, 1573, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1578, 1579, - 1580, 1581, 1361, 1584, 1587, 1564, 1565, 1566, 1567, 1573, 1324, 1325, 1332, 1333, 1334, 1335, - 1336, 1337, 1338, 1339, 1584, 1587, 1564, 1565, 1566, 1567, 1573, 1324, 1325, 1332, 1333, 1334, - 1335, 1336, 1337, 1338, 1339, 1584, 1587, 1549, 1550, 1293, 1294, 1306, 1307, 1312, 1313, 1564, - 1565, 1566, 1567, 1573, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1574, 1575, - 1576, 1577, 1584, 1587, 1295, 1296, 1297, 1298, 1308, 1309, 1310, 1311, 1564, 1565, 1566, 1567, - 1573, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1578, 1579, 1580, 1581, 1361, - 1583, 1585, 1587, 1564, 1565, 1566, 1567, 1573, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, - 1338, 1339, 1583, 1585, 1587, 1269, 1270, 1271, 1272, 1279, 1280, 1281, 1282, 1564, 1565, 1566, - 1567, 1573, 1324, 1325, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1583, 1585, 1587, 1549, - 1550, 1277, 1278, 1293, 1294, 1306, 1307, 1312, 1313, 1564, 1565, 1566, 1567, 1573, 1324, 1325, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1574, 1575, 1576, 1577, 1583, 1585, 1587, 1561, - 1562, 1563, 1317, 1572, 1320, 1573, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, - 1354, 1355, 1562, 1563, 1317, 1572, 1320, 1573, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1563, 1572, 1318, 1321, 1573, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1354, 1355, 1563, 1318, 1572, 1321, 1573, 1344, 1345, 1346, 1347, 1348, 1349, - 1350, 1351, 1352, 1353, 1354, 1355, 1561, 1562, 1563, 1317, 1572, 1320, 1573, 1344, 1345, 1346, - 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1562, 1563, 1317, 1572, 1320, 1573, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1563, 1572, 1318, 1321, 1573, - 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1563, 1572, 1318, 1321, - 1573, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1573, 1358, 1359, - 1360, 1573, 1358, 1359, 1360, 1573, 1358, 1359, 1360, 1543, 1544, 1545, 1546, 1547, 1548, 1553, - 1554, 1555, 1556, 1558, 1559, 1560, 1573, 1358, 1359, 1360, 1573, 1358, 1359, 1360, 1573, 1358, - 1359, 1360, 1573, 1358, 1359, 1360, 1543, 1544, 1545, 1546, 1547, 1548, 1553, 1554, 1555, 1556, - 1558, 1559, 1560, 1573, 1358, 1359, 1360, + 1052, 1053, 1027, 1028, 1037, 1038, 1062, 1063, 1037, 1038, 1065, 1064, 1066, 1067, 1037, 1038, + 1037, 1038, 1037, 1038, 1063, 1062, 1037, 1038, 1065, 1064, 1037, 1038, 1037, 1038, 1048, 1049, + 1063, 1062, 1048, 1049, 1064, 1065, 1048, 1049, 1048, 1049, 1048, 1049, 1063, 1062, 1048, 1049, + 1065, 1064, 1048, 1049, 1048, 1049, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1037, 1078, 1079, 1081, 1080, 1038, 1082, 1083, 1084, 1085, 1086, 1073, 1074, 1087, 1037, 1088, + 1089, 1090, 1091, 1038, 1092, 1083, 1093, 1085, 1069, 1070, 1094, 1095, 1096, 1097, 1074, 1073, + 1075, 1098, 1037, 1100, 1099, 1102, 1101, 1038, 1082, 1083, 1084, 1085, 1073, 1074, 1087, 1103, + 1104, 1037, 1106, 1105, 1107, 1108, 1038, 1092, 1083, 1093, 1085, 1071, 1109, 1072, 1074, 1073, + 1075, 1076, 1077, 1037, 1078, 1079, 1080, 1081, 1038, 1082, 1083, 1084, 1085, 1074, 1073, 1087, + 1037, 1088, 1089, 1090, 1091, 1038, 1092, 1083, 1093, 1085, 1094, 1095, 1109, 1096, 1097, 1074, + 1073, 1075, 1098, 1037, 1099, 1100, 1101, 1102, 1038, 1082, 1083, 1084, 1085, 1074, 1073, 1087, + 1103, 1104, 1037, 1106, 1105, 1107, 1108, 1038, 1092, 1083, 1093, 1085, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1075, 1117, 1119, 1118, 1082, 1083, 1084, 1085, 1087, 1120, 1121, 1123, 1122, + 1124, 1125, 1092, 1083, 1093, 1085, 1075, 1126, 1127, 1129, 1128, 1130, 1131, 1082, 1083, 1084, + 1085, 1134, 1133, 1132, 1136, 1135, 1137, 1138, 1139, 1140, 1142, 1141, 1144, 1143, 1145, 1146, + 1147, 1148, 1149, 1150, 1152, 1151, 1154, 1153, 1156, 1155, 1157, 1159, 1158, 1163, 1162, 1167, + 1160, 1168, 1161, 1164, 1169, 1165, 1166, 1170, 1171, 1173, 1172, 1177, 1174, 1175, 1176, 1179, + 1178, 1181, 1180, 1182, 1183, 1185, 1184, 1186, 1188, 1190, 1192, 1187, 1194, 1191, 1193, 1189, + 1196, 1197, 1195, 1199, 1198, 1200, 1201, 1202, 1203, 1087, 1092, 1083, 1093, 1085, 1110, 1111, + 1112, 1113, 1115, 1114, 1116, 1204, 1075, 1117, 1118, 1119, 1082, 1083, 1084, 1085, 1087, 1120, + 1121, 1123, 1122, 1124, 1125, 1092, 1083, 1093, 1085, 1205, 1206, 1075, 1126, 1127, 1129, 1128, + 1131, 1130, 1082, 1083, 1084, 1085, 1207, 1134, 1132, 1133, 1135, 1136, 1137, 1138, 1139, 1140, + 1142, 1141, 1144, 1143, 1145, 1146, 1147, 1148, 1150, 1149, 1152, 1151, 1153, 1154, 1156, 1155, + 1157, 1158, 1159, 1169, 1168, 1166, 1165, 1163, 1160, 1161, 1162, 1164, 1167, 1170, 1171, 1172, + 1173, 1177, 1175, 1176, 1174, 1178, 1179, 1180, 1181, 1182, 1183, 1185, 1184, 1186, 1194, 1190, + 1193, 1188, 1189, 1192, 1191, 1187, 1197, 1195, 1196, 1199, 1198, 1201, 1200, 1203, 1202, 1087, + 1092, 1083, 1093, 1085, 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, + 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, + 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, + 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, + 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, + 1381, 1383, 1382, 1384, 1385, 1387, 1386, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, + 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1395, 1394, + 1396, 1378, 1379, 1380, 1381, 1383, 1382, 1384, 1387, 1386, 1388, 1389, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 1427, 1428, 1429, 1430, 1425, 1426, 1394, 1395, 1396, 1431, 1432, 1433, 1434, + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, + 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, + 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, + 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, + 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, + 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, + 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1539, 1538, 1540, 1541, 1542, 1543, 1544, 1545, 1270, + 1271, 1272, 1273, 1274, 1275, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 1560, 1280, 1281, 1282, 1283, 1284, 1285, 1561, 1562, 1563, 1289, 1290, 1291, + 1564, 1296, 1297, 1298, 1299, 1300, 1301, 1305, 1306, 1565, 1307, 1308, 1566, 1309, 1310, 1311, + 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, + 1320, 1575, 1321, 1322, 1323, 1324, 1576, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, + 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, + 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1577, 1578, 1579, 1580, 1581, 1582, 1583, + 1584, 1361, 1362, 1363, 1364, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1591, 1592, 1592, 1593, + 1593, 1594, 1595, 1596, 1597, 1598, 1598, 1599, 1599, 1600, 1600, 1601, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, 1623, 1624, 1625, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1634, + 1635, 1635, 1636, 1636, 1637, 1637, 1638, 1638, 1639, 1639, 1640, 1640, 1641, 1641, 1642, 1642, + 1643, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, + 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1665, 1666, 1666, 1667, 1667, 1667, 1668, 1669, + 1667, 1670, 1670, 1217, 1218, 1219, 1220, 1225, 1231, 1221, 1230, 1231, 1230, 1228, 1226, 1228, + 1224, 1226, 1214, 1215, 1222, 1231, 1210, 1211, 1212, 1213, 1216, 1230, 1231, 1230, 1229, 1227, + 1223, 1229, 1227, 1231, 1230, 1231, 1209, 1230, 1231, 1230, 1231, 1230, 1244, 1243, 1236, 1244, + 1243, 1250, 1250, 1232, 1233, 1234, 1235, 1241, 1240, 1249, 1232, 1233, 1234, 1235, 1240, 1241, + 1249, 1242, 1242, 1245, 1237, 1245, 1239, 1247, 1247, 1248, 1248, 1238, 1246, 1246, 1261, 1268, + 1269, 1261, 1264, 1266, 1265, 1267, 1261, 1268, 1269, 1251, 1252, 1253, 1254, 1261, 1264, 1266, + 1265, 1267, 1268, 1269, 1264, 1266, 1265, 1267, 1268, 1269, 1264, 1266, 1265, 1267, 1251, 1252, + 1253, 1254, 1258, 1259, 1260, 1263, 1255, 1256, 1257, 1262, 1258, 1259, 1260, 1263, 1255, 1256, + 1257, 1262, 1289, 1290, 1302, 1303, 1305, 1306, 1307, 1318, 1319, 1322, 1325, 1326, 1329, 1330, + 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1369, 1289, 1290, 1302, 1304, 1305, 1306, 1307, + 1319, 1322, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1369, 1289, + 1290, 1302, 1303, 1305, 1306, 1307, 1319, 1322, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, + 1343, 1344, 1345, 1346, 1369, 1276, 1277, 1278, 1279, 1289, 1290, 1291, 1302, 1304, 1305, 1306, + 1307, 1308, 1317, 1319, 1322, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, + 1346, 1369, 1289, 1290, 1303, 1305, 1306, 1307, 1318, 1319, 1322, 1325, 1326, 1329, 1330, 1331, + 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1365, 1369, 1289, 1290, 1304, 1305, 1306, 1307, 1319, + 1322, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1365, 1369, 1289, + 1290, 1303, 1305, 1306, 1307, 1319, 1322, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, + 1344, 1345, 1346, 1365, 1369, 1276, 1277, 1278, 1279, 1289, 1290, 1291, 1304, 1305, 1306, 1307, + 1308, 1317, 1319, 1322, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, + 1365, 1369, 1270, 1271, 1286, 1287, 1288, 1298, 1299, 1300, 1301, 1311, 1312, 1313, 1314, 1327, + 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1359, 1360, 1364, 1367, 1370, 1327, 1328, + 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1367, 1370, 1286, 1327, 1328, 1335, 1336, 1337, + 1338, 1339, 1340, 1341, 1342, 1367, 1370, 1296, 1297, 1309, 1310, 1315, 1316, 1327, 1328, 1335, + 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1367, 1370, 1286, 1287, 1288, 1298, 1299, 1300, 1301, + 1311, 1312, 1313, 1314, 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1359, 1360, + 1364, 1366, 1368, 1370, 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1366, 1368, + 1370, 1272, 1273, 1274, 1275, 1282, 1283, 1284, 1285, 1286, 1327, 1328, 1335, 1336, 1337, 1338, + 1339, 1340, 1341, 1342, 1366, 1368, 1370, 1280, 1281, 1296, 1297, 1309, 1310, 1315, 1316, 1327, + 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1366, 1368, 1370, 1292, 1320, 1323, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1293, 1320, 1323, 1347, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1294, 1321, 1324, 1347, 1348, 1349, + 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1295, 1321, 1324, 1347, 1348, 1349, 1350, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1292, 1320, 1323, 1347, 1348, 1349, 1350, 1351, + 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1293, 1320, 1323, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 1294, 1321, 1324, 1347, 1348, 1349, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1295, 1321, 1324, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1355, 1356, 1357, 1358, 1361, 1362, 1363, 1361, 1362, 1363, 1361, 1362, 1363, 1361, 1362, 1363, + 1361, 1362, 1363, 1361, 1362, 1363, 1361, 1362, 1363, 1361, 1362, 1363, 1371, 1373, 1374, 1375, + 1385, 1386, 1387, 1395, 1394, 1396, 1373, 1374, 1376, 1378, 1385, 1387, 1386, 1395, 1394, 1396, + 1373, 1374, 1385, 1393, 1395, 1394, 1396, 1373, 1374, 1385, 1393, 1395, 1394, 1396, 1372, 1374, + 1377, 1383, 1382, 1385, 1392, 1395, 1394, 1396, 1374, 1382, 1383, 1385, 1392, 1394, 1395, 1396, + 1374, 1384, 1385, 1395, 1394, 1396, 1374, 1384, 1385, 1395, 1394, 1396, 1388, 1394, 1395, 1396, + 1379, 1388, 1395, 1394, 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1394, 1395, + 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1374, 1385, 1395, 1394, 1396, 1374, 1381, 1385, 1394, + 1395, 1396, 1374, 1385, 1394, 1395, 1396, 1374, 1385, 1394, 1395, 1396, 1374, 1385, 1390, 1394, + 1395, 1396, 1374, 1385, 1390, 1395, 1394, 1396, 1374, 1385, 1391, 1394, 1395, 1396, 1374, 1385, + 1391, 1394, 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1380, 1395, 1394, + 1396, 1389, 1394, 1395, 1396, 1389, 1395, 1394, 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1394, + 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1425, 1394, 1395, 1396, 1394, + 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1394, 1395, + 1396, 1394, 1395, 1396, 1426, 1394, 1395, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1394, 1395, + 1396, 1423, 1394, 1395, 1396, 1395, 1394, 1396, 1417, 1423, 1395, 1394, 1396, 1395, 1394, 1396, + 1421, 1394, 1395, 1396, 1394, 1395, 1396, 1419, 1420, 1394, 1395, 1396, 1395, 1394, 1396, 1416, + 1424, 1395, 1394, 1396, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1403, 1404, 1405, 1406, + 1408, 1409, 1410, 1411, 1418, 1424, 1395, 1394, 1396, 1402, 1407, 1413, 1414, 1415, 1394, 1395, + 1396, 1422, 1395, 1394, 1396, 1395, 1394, 1396, 1412, 1394, 1395, 1396, 1394, 1395, 1396, 1387, + 1386, 1394, 1395, 1396, 1378, 1386, 1387, 1395, 1394, 1396, 1393, 1394, 1395, 1396, 1393, 1394, + 1395, 1396, 1383, 1382, 1392, 1394, 1395, 1396, 1382, 1383, 1392, 1394, 1395, 1396, 1384, 1394, + 1395, 1396, 1384, 1394, 1395, 1396, 1388, 1394, 1395, 1396, 1379, 1388, 1394, 1395, 1396, 1395, + 1394, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1395, 1394, + 1396, 1395, 1394, 1396, 1381, 1395, 1394, 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1390, 1395, + 1394, 1396, 1390, 1395, 1394, 1396, 1391, 1395, 1394, 1396, 1391, 1394, 1395, 1396, 1394, 1395, + 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1380, 1394, 1395, 1396, 1389, 1394, 1395, 1396, 1389, + 1394, 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1395, + 1394, 1396, 1394, 1395, 1396, 1425, 1394, 1395, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1395, + 1394, 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1426, 1395, + 1394, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1395, 1394, + 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1395, 1394, 1396, + 1394, 1395, 1396, 1427, 1428, 1429, 1395, 1394, 1396, 1394, 1395, 1396, 1394, 1395, 1396, 1394, + 1395, 1396, 1395, 1394, 1396, 1395, 1394, 1396, 1394, 1395, 1396, 1430, 1394, 1395, 1396, 1434, + 1433, 1436, 1435, 1440, 1432, 1431, 1442, 1446, 1439, 1445, 1448, 1447, 1444, 1442, 1443, 1437, + 1438, 1441, 1449, 1450, 1453, 1506, 1512, 1456, 1506, 1515, 1452, 1507, 1511, 1455, 1507, 1514, + 1451, 1508, 1510, 1454, 1508, 1513, 1509, 1509, 1462, 1463, 1464, 1465, 1466, 1472, 1478, 1484, + 1490, 1496, 1458, 1459, 1460, 1461, 1467, 1473, 1479, 1485, 1491, 1497, 1468, 1474, 1480, 1486, + 1492, 1498, 1457, 1470, 1476, 1482, 1488, 1494, 1500, 1471, 1477, 1483, 1489, 1495, 1501, 1469, + 1475, 1481, 1487, 1493, 1499, 1502, 1516, 1517, 1505, 1520, 1503, 1518, 1504, 1521, 1519, 1543, + 1542, 1539, 1540, 1538, 1541, 1543, 1542, 1539, 1540, 1538, 1541, 1528, 1529, 1530, 1531, 1532, + 1533, 1543, 1522, 1523, 1524, 1525, 1526, 1527, 1534, 1535, 1536, 1537, 1542, 1539, 1540, 1538, + 1541, 1528, 1529, 1530, 1531, 1532, 1533, 1543, 1522, 1523, 1524, 1525, 1526, 1527, 1542, 1539, + 1540, 1538, 1541, 1534, 1535, 1536, 1537, 1560, 1289, 1290, 1305, 1306, 1307, 1566, 1318, 1319, + 1571, 1572, 1573, 1574, 1322, 1576, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, + 1345, 1346, 1589, 1289, 1290, 1305, 1306, 1307, 1566, 1319, 1571, 1572, 1573, 1574, 1322, 1576, + 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1589, 1289, 1290, 1305, + 1306, 1307, 1566, 1319, 1571, 1572, 1573, 1574, 1322, 1576, 1325, 1326, 1329, 1330, 1331, 1332, + 1333, 1334, 1343, 1344, 1345, 1346, 1589, 1545, 1554, 1555, 1289, 1290, 1291, 1305, 1306, 1307, + 1308, 1566, 1317, 1319, 1571, 1572, 1573, 1574, 1322, 1576, 1325, 1326, 1329, 1330, 1331, 1332, + 1333, 1334, 1343, 1344, 1345, 1346, 1589, 1560, 1289, 1290, 1305, 1306, 1307, 1566, 1318, 1319, + 1571, 1572, 1573, 1574, 1322, 1576, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, + 1345, 1346, 1585, 1589, 1289, 1290, 1305, 1306, 1307, 1566, 1319, 1571, 1572, 1573, 1574, 1322, + 1576, 1325, 1326, 1329, 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1585, 1589, 1289, + 1290, 1305, 1306, 1307, 1566, 1319, 1571, 1572, 1573, 1574, 1322, 1576, 1325, 1326, 1329, 1330, + 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1585, 1589, 1544, 1554, 1555, 1289, 1290, 1291, + 1305, 1306, 1307, 1308, 1566, 1317, 1319, 1571, 1572, 1573, 1574, 1322, 1576, 1325, 1326, 1329, + 1330, 1331, 1332, 1333, 1334, 1343, 1344, 1345, 1346, 1585, 1589, 1270, 1271, 1298, 1299, 1300, + 1301, 1311, 1312, 1313, 1314, 1567, 1568, 1569, 1570, 1576, 1327, 1328, 1335, 1336, 1337, 1338, + 1339, 1340, 1341, 1342, 1581, 1582, 1583, 1584, 1364, 1587, 1590, 1567, 1568, 1569, 1570, 1576, + 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1587, 1590, 1567, 1568, 1569, 1570, + 1576, 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1587, 1590, 1552, 1553, 1296, + 1297, 1309, 1310, 1315, 1316, 1567, 1568, 1569, 1570, 1576, 1327, 1328, 1335, 1336, 1337, 1338, + 1339, 1340, 1341, 1342, 1577, 1578, 1579, 1580, 1587, 1590, 1298, 1299, 1300, 1301, 1311, 1312, + 1313, 1314, 1567, 1568, 1569, 1570, 1576, 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, + 1342, 1581, 1582, 1583, 1584, 1364, 1586, 1588, 1590, 1567, 1568, 1569, 1570, 1576, 1327, 1328, + 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1586, 1588, 1590, 1272, 1273, 1274, 1275, 1282, + 1283, 1284, 1285, 1567, 1568, 1569, 1570, 1576, 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, + 1341, 1342, 1586, 1588, 1590, 1552, 1553, 1280, 1281, 1296, 1297, 1309, 1310, 1315, 1316, 1567, + 1568, 1569, 1570, 1576, 1327, 1328, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1577, 1578, + 1579, 1580, 1586, 1588, 1590, 1564, 1565, 1566, 1320, 1575, 1323, 1576, 1347, 1348, 1349, 1350, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1565, 1566, 1320, 1575, 1323, 1576, 1347, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1566, 1575, 1321, 1324, 1576, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1566, 1321, 1575, 1324, 1576, + 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1564, 1565, 1566, 1320, + 1575, 1323, 1576, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1565, + 1566, 1320, 1575, 1323, 1576, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, + 1358, 1566, 1575, 1321, 1324, 1576, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, + 1357, 1358, 1566, 1575, 1321, 1324, 1576, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, + 1356, 1357, 1358, 1576, 1361, 1362, 1363, 1576, 1361, 1362, 1363, 1576, 1361, 1362, 1363, 1546, + 1547, 1548, 1549, 1550, 1551, 1556, 1557, 1558, 1559, 1561, 1562, 1563, 1576, 1361, 1362, 1363, + 1576, 1361, 1362, 1363, 1576, 1361, 1362, 1363, 1576, 1361, 1362, 1363, 1546, 1547, 1548, 1549, + 1550, 1551, 1556, 1557, 1558, 1559, 1561, 1562, 1563, 1576, 1361, 1362, 1363, } DECODE_INDEX_A32 := [256]lib.Decode_Index{ @@ -2348,427 +2351,427 @@ DECODE_INDEX_A32 := [256]lib.Decode_Index{ 0xDD = { 2494, 4}, 0xDE = { 2498, 2}, 0xDF = { 2500, 2}, - 0xE0 = { 2502, 18}, - 0xE1 = { 2520, 14}, - 0xE2 = { 2534, 18}, - 0xE3 = { 2552, 15}, - 0xE4 = { 2567, 17}, - 0xE5 = { 2584, 13}, - 0xE6 = { 2597, 18}, - 0xE7 = { 2615, 15}, - 0xE8 = { 2630, 15}, - 0xE9 = { 2645, 11}, - 0xEA = { 2656, 11}, - 0xEB = { 2667, 77}, - 0xEC = { 2744, 16}, - 0xED = { 2760, 11}, - 0xEE = { 2771, 13}, - 0xEF = { 2784, 78}, - 0xF0 = { 2862, 3}, - 0xF1 = { 2865, 3}, - 0xF2 = { 2868, 3}, - 0xF3 = { 2871, 3}, - 0xF4 = { 2874, 3}, - 0xF5 = { 2877, 3}, - 0xF6 = { 2880, 3}, - 0xF7 = { 2883, 3}, - 0xF8 = { 2886, 1}, - 0xF9 = { 2887, 1}, - 0xFA = { 2888, 1}, - 0xFB = { 2889, 1}, - 0xFC = { 2890, 1}, - 0xFD = { 2891, 1}, - 0xFE = { 2892, 1}, - 0xFF = { 2893, 1}, + 0xE0 = { 2502, 20}, + 0xE1 = { 2522, 14}, + 0xE2 = { 2536, 20}, + 0xE3 = { 2556, 15}, + 0xE4 = { 2571, 18}, + 0xE5 = { 2589, 13}, + 0xE6 = { 2602, 19}, + 0xE7 = { 2621, 15}, + 0xE8 = { 2636, 15}, + 0xE9 = { 2651, 11}, + 0xEA = { 2662, 11}, + 0xEB = { 2673, 77}, + 0xEC = { 2750, 16}, + 0xED = { 2766, 11}, + 0xEE = { 2777, 13}, + 0xEF = { 2790, 78}, + 0xF0 = { 2868, 3}, + 0xF1 = { 2871, 3}, + 0xF2 = { 2874, 3}, + 0xF3 = { 2877, 3}, + 0xF4 = { 2880, 3}, + 0xF5 = { 2883, 3}, + 0xF6 = { 2886, 3}, + 0xF7 = { 2889, 3}, + 0xF8 = { 2892, 1}, + 0xF9 = { 2893, 1}, + 0xFA = { 2894, 1}, + 0xFB = { 2895, 1}, + 0xFC = { 2896, 1}, + 0xFD = { 2897, 1}, + 0xFE = { 2898, 1}, + 0xFF = { 2899, 1}, } DECODE_INDEX_T32 := [128]lib.Decode_Index{ - 0x74 = { 2894, 23}, - 0x75 = { 2917, 19}, - 0x76 = { 2936, 19}, - 0x77 = { 2955, 101}, - 0x78 = { 3056, 26}, - 0x79 = { 3082, 33}, - 0x7A = { 3115, 18}, - 0x7B = { 3133, 9}, - 0x7C = { 3142, 20}, - 0x7D = { 3162, 71}, - 0x7E = { 3233, 22}, - 0x7F = { 3255, 126}, + 0x74 = { 2900, 23}, + 0x75 = { 2923, 19}, + 0x76 = { 2942, 19}, + 0x77 = { 2961, 101}, + 0x78 = { 3062, 26}, + 0x79 = { 3088, 33}, + 0x7A = { 3121, 18}, + 0x7B = { 3139, 9}, + 0x7C = { 3148, 20}, + 0x7D = { 3168, 71}, + 0x7E = { 3239, 22}, + 0x7F = { 3261, 126}, } DECODE_INDEX_T16 := [64]lib.Decode_Index{ - 0x00 = { 3381, 1}, - 0x01 = { 3382, 1}, - 0x02 = { 3383, 1}, - 0x03 = { 3384, 1}, - 0x04 = { 3385, 1}, - 0x05 = { 3386, 1}, - 0x06 = { 3387, 2}, - 0x07 = { 3389, 2}, - 0x08 = { 3391, 1}, - 0x09 = { 3392, 1}, - 0x0A = { 3393, 1}, - 0x0B = { 3394, 1}, - 0x0C = { 3395, 1}, - 0x0D = { 3396, 1}, - 0x0E = { 3397, 1}, - 0x0F = { 3398, 1}, - 0x10 = { 3399, 16}, - 0x11 = { 3415, 7}, - 0x12 = { 3422, 1}, - 0x13 = { 3423, 1}, - 0x14 = { 3424, 2}, - 0x15 = { 3426, 2}, - 0x16 = { 3428, 2}, - 0x17 = { 3430, 2}, - 0x18 = { 3432, 1}, - 0x19 = { 3433, 1}, - 0x1A = { 3434, 1}, - 0x1B = { 3435, 1}, - 0x1C = { 3436, 1}, - 0x1D = { 3437, 1}, - 0x1E = { 3438, 1}, - 0x1F = { 3439, 1}, - 0x20 = { 3440, 1}, - 0x21 = { 3441, 1}, - 0x22 = { 3442, 1}, - 0x23 = { 3443, 1}, - 0x24 = { 3444, 1}, - 0x25 = { 3445, 1}, - 0x26 = { 3446, 1}, - 0x27 = { 3447, 1}, - 0x28 = { 3448, 1}, - 0x29 = { 3449, 1}, - 0x2A = { 3450, 1}, - 0x2B = { 3451, 1}, - 0x2C = { 3452, 7}, - 0x2D = { 3459, 2}, - 0x2E = { 3461, 4}, - 0x2F = { 3465, 8}, - 0x30 = { 3473, 1}, - 0x31 = { 3474, 1}, - 0x32 = { 3475, 1}, - 0x33 = { 3476, 1}, - 0x34 = { 3477, 1}, - 0x35 = { 3478, 1}, - 0x36 = { 3479, 1}, - 0x37 = { 3480, 3}, - 0x38 = { 3483, 1}, - 0x39 = { 3484, 1}, + 0x00 = { 3387, 1}, + 0x01 = { 3388, 1}, + 0x02 = { 3389, 1}, + 0x03 = { 3390, 1}, + 0x04 = { 3391, 1}, + 0x05 = { 3392, 1}, + 0x06 = { 3393, 2}, + 0x07 = { 3395, 2}, + 0x08 = { 3397, 1}, + 0x09 = { 3398, 1}, + 0x0A = { 3399, 1}, + 0x0B = { 3400, 1}, + 0x0C = { 3401, 1}, + 0x0D = { 3402, 1}, + 0x0E = { 3403, 1}, + 0x0F = { 3404, 1}, + 0x10 = { 3405, 16}, + 0x11 = { 3421, 7}, + 0x12 = { 3428, 1}, + 0x13 = { 3429, 1}, + 0x14 = { 3430, 2}, + 0x15 = { 3432, 2}, + 0x16 = { 3434, 2}, + 0x17 = { 3436, 2}, + 0x18 = { 3438, 1}, + 0x19 = { 3439, 1}, + 0x1A = { 3440, 1}, + 0x1B = { 3441, 1}, + 0x1C = { 3442, 1}, + 0x1D = { 3443, 1}, + 0x1E = { 3444, 1}, + 0x1F = { 3445, 1}, + 0x20 = { 3446, 1}, + 0x21 = { 3447, 1}, + 0x22 = { 3448, 1}, + 0x23 = { 3449, 1}, + 0x24 = { 3450, 1}, + 0x25 = { 3451, 1}, + 0x26 = { 3452, 1}, + 0x27 = { 3453, 1}, + 0x28 = { 3454, 1}, + 0x29 = { 3455, 1}, + 0x2A = { 3456, 1}, + 0x2B = { 3457, 1}, + 0x2C = { 3458, 7}, + 0x2D = { 3465, 2}, + 0x2E = { 3467, 4}, + 0x2F = { 3471, 8}, + 0x30 = { 3479, 1}, + 0x31 = { 3480, 1}, + 0x32 = { 3481, 1}, + 0x33 = { 3482, 1}, + 0x34 = { 3483, 1}, + 0x35 = { 3484, 1}, + 0x36 = { 3485, 1}, + 0x37 = { 3486, 3}, + 0x38 = { 3489, 1}, + 0x39 = { 3490, 1}, } DECODE_INDEX_T32_SUB := [4096]lib.Decode_Index{ - 0xE84 = { 3485, 6}, - 0xE85 = { 3491, 2}, - 0xE86 = { 3493, 1}, - 0xE87 = { 3494, 1}, - 0xE88 = { 3495, 1}, - 0xE89 = { 3496, 1}, - 0xE8A = { 3497, 1}, - 0xE8B = { 3498, 2}, - 0xE8C = { 3500, 4}, - 0xE8D = { 3504, 6}, - 0xE8E = { 3510, 1}, - 0xE8F = { 3511, 1}, - 0xE90 = { 3512, 1}, - 0xE91 = { 3513, 1}, - 0xE92 = { 3514, 2}, - 0xE93 = { 3516, 1}, - 0xE94 = { 3517, 1}, - 0xE95 = { 3518, 1}, - 0xE96 = { 3519, 1}, - 0xE97 = { 3520, 2}, - 0xE9C = { 3522, 1}, - 0xE9D = { 3523, 1}, - 0xE9E = { 3524, 1}, - 0xE9F = { 3525, 1}, - 0xEA0 = { 3526, 2}, - 0xEA1 = { 3528, 3}, - 0xEA2 = { 3531, 1}, - 0xEA3 = { 3532, 1}, - 0xEA4 = { 3533, 7}, - 0xEA5 = { 3540, 7}, - 0xEA6 = { 3547, 1}, - 0xEA7 = { 3548, 1}, - 0xEA8 = { 3549, 1}, - 0xEA9 = { 3550, 2}, - 0xEB1 = { 3552, 1}, - 0xEB4 = { 3553, 1}, - 0xEB5 = { 3554, 1}, - 0xEB6 = { 3555, 1}, - 0xEB7 = { 3556, 1}, - 0xEBB = { 3557, 1}, - 0xEBC = { 3558, 1}, - 0xEBD = { 3559, 1}, - 0xEC0 = { 3560, 2}, - 0xEC1 = { 3562, 1}, - 0xEC2 = { 3563, 3}, - 0xEC3 = { 3566, 2}, - 0xEC4 = { 3568, 2}, - 0xEC5 = { 3570, 1}, - 0xEC6 = { 3571, 7}, - 0xEC7 = { 3578, 2}, - 0xEC8 = { 3580, 1}, - 0xEC9 = { 3581, 1}, - 0xECA = { 3582, 2}, - 0xECB = { 3584, 2}, - 0xECC = { 3586, 1}, - 0xECD = { 3587, 1}, - 0xECE = { 3588, 2}, - 0xECF = { 3590, 2}, - 0xED6 = { 3592, 4}, - 0xED8 = { 3596, 4}, - 0xED9 = { 3600, 4}, - 0xEDC = { 3604, 4}, - 0xEDD = { 3608, 4}, - 0xEE0 = { 3612, 23}, - 0xEE1 = { 3635, 22}, - 0xEE2 = { 3657, 22}, - 0xEE3 = { 3679, 29}, - 0xEE4 = { 3708, 23}, - 0xEE5 = { 3731, 22}, - 0xEE6 = { 3753, 22}, - 0xEE7 = { 3775, 29}, - 0xEE8 = { 3804, 28}, - 0xEE9 = { 3832, 12}, - 0xEEA = { 3844, 13}, - 0xEEB = { 3857, 18}, - 0xEEC = { 3875, 27}, - 0xEED = { 3902, 13}, - 0xEEE = { 3915, 22}, - 0xEEF = { 3937, 21}, - 0xEF0 = { 3958, 15}, - 0xEF1 = { 3973, 15}, - 0xEF2 = { 3988, 15}, - 0xEF3 = { 4003, 15}, - 0xEF4 = { 4018, 15}, - 0xEF5 = { 4033, 15}, - 0xEF6 = { 4048, 15}, - 0xEF7 = { 4063, 15}, - 0xEF8 = { 4078, 3}, - 0xEF9 = { 4081, 3}, - 0xEFA = { 4084, 3}, - 0xEFB = { 4087, 3}, - 0xEFC = { 4090, 3}, - 0xEFD = { 4093, 3}, - 0xEFE = { 4096, 3}, - 0xEFF = { 4099, 3}, - 0xF00 = { 4102, 10}, - 0xF01 = { 4112, 10}, - 0xF02 = { 4122, 7}, - 0xF03 = { 4129, 7}, - 0xF04 = { 4136, 10}, - 0xF05 = { 4146, 8}, - 0xF06 = { 4154, 6}, - 0xF07 = { 4160, 6}, - 0xF08 = { 4166, 4}, - 0xF09 = { 4170, 5}, - 0xF0A = { 4175, 3}, - 0xF0B = { 4178, 3}, - 0xF0C = { 4181, 3}, - 0xF0D = { 4184, 3}, - 0xF0E = { 4187, 3}, - 0xF0F = { 4190, 3}, - 0xF10 = { 4193, 5}, - 0xF11 = { 4198, 6}, - 0xF12 = { 4204, 5}, - 0xF13 = { 4209, 5}, - 0xF14 = { 4214, 6}, - 0xF15 = { 4220, 6}, - 0xF16 = { 4226, 6}, - 0xF17 = { 4232, 6}, - 0xF18 = { 4238, 3}, - 0xF19 = { 4241, 3}, - 0xF1A = { 4244, 3}, - 0xF1B = { 4247, 4}, - 0xF1C = { 4251, 4}, - 0xF1D = { 4255, 4}, - 0xF1E = { 4259, 3}, - 0xF1F = { 4262, 3}, - 0xF20 = { 4265, 3}, - 0xF21 = { 4268, 3}, - 0xF22 = { 4271, 3}, - 0xF23 = { 4274, 3}, - 0xF24 = { 4277, 4}, - 0xF25 = { 4281, 3}, - 0xF26 = { 4284, 3}, - 0xF27 = { 4287, 3}, - 0xF28 = { 4290, 3}, - 0xF29 = { 4293, 3}, - 0xF2A = { 4296, 3}, - 0xF2B = { 4299, 3}, - 0xF2C = { 4302, 4}, - 0xF2D = { 4306, 3}, - 0xF2E = { 4309, 3}, - 0xF2F = { 4312, 3}, - 0xF30 = { 4315, 4}, - 0xF31 = { 4319, 3}, - 0xF32 = { 4322, 5}, - 0xF33 = { 4327, 3}, - 0xF34 = { 4330, 4}, - 0xF35 = { 4334, 3}, - 0xF36 = { 4337, 5}, - 0xF37 = { 4342, 3}, - 0xF38 = { 4345, 5}, - 0xF39 = { 4350, 3}, - 0xF3A = { 4353, 18}, - 0xF3B = { 4371, 8}, - 0xF3C = { 4379, 4}, - 0xF3D = { 4383, 3}, - 0xF3E = { 4386, 4}, - 0xF3F = { 4390, 3}, - 0xF40 = { 4393, 5}, - 0xF41 = { 4398, 6}, - 0xF42 = { 4404, 4}, - 0xF43 = { 4408, 4}, - 0xF44 = { 4412, 6}, - 0xF45 = { 4418, 6}, - 0xF46 = { 4424, 4}, - 0xF47 = { 4428, 4}, - 0xF48 = { 4432, 4}, - 0xF49 = { 4436, 5}, - 0xF4A = { 4441, 3}, - 0xF4B = { 4444, 3}, - 0xF4C = { 4447, 3}, - 0xF4D = { 4450, 3}, - 0xF4E = { 4453, 3}, - 0xF4F = { 4456, 3}, - 0xF50 = { 4459, 3}, - 0xF51 = { 4462, 4}, - 0xF52 = { 4466, 3}, - 0xF53 = { 4469, 3}, - 0xF54 = { 4472, 4}, - 0xF55 = { 4476, 4}, - 0xF56 = { 4480, 4}, - 0xF57 = { 4484, 4}, - 0xF58 = { 4488, 3}, - 0xF59 = { 4491, 3}, - 0xF5A = { 4494, 3}, - 0xF5B = { 4497, 4}, - 0xF5C = { 4501, 4}, - 0xF5D = { 4505, 4}, - 0xF5E = { 4509, 3}, - 0xF5F = { 4512, 3}, - 0xF60 = { 4515, 3}, - 0xF61 = { 4518, 3}, - 0xF62 = { 4521, 3}, - 0xF63 = { 4524, 3}, - 0xF64 = { 4527, 4}, - 0xF65 = { 4531, 3}, - 0xF66 = { 4534, 3}, - 0xF67 = { 4537, 3}, - 0xF68 = { 4540, 3}, - 0xF69 = { 4543, 3}, - 0xF6A = { 4546, 3}, - 0xF6B = { 4549, 3}, - 0xF6C = { 4552, 4}, - 0xF6D = { 4556, 3}, - 0xF6E = { 4559, 3}, - 0xF6F = { 4562, 3}, - 0xF70 = { 4565, 3}, - 0xF71 = { 4568, 3}, - 0xF72 = { 4571, 3}, - 0xF73 = { 4574, 3}, - 0xF74 = { 4577, 3}, - 0xF75 = { 4580, 3}, - 0xF76 = { 4583, 3}, - 0xF77 = { 4586, 3}, - 0xF78 = { 4589, 6}, - 0xF79 = { 4595, 3}, - 0xF7A = { 4598, 3}, - 0xF7B = { 4601, 3}, - 0xF7C = { 4604, 3}, - 0xF7D = { 4607, 3}, - 0xF7E = { 4610, 3}, - 0xF7F = { 4613, 4}, - 0xF80 = { 4617, 1}, - 0xF81 = { 4618, 1}, - 0xF82 = { 4619, 1}, - 0xF83 = { 4620, 2}, - 0xF84 = { 4622, 1}, - 0xF85 = { 4623, 2}, - 0xF88 = { 4625, 1}, - 0xF89 = { 4626, 2}, - 0xF8A = { 4628, 1}, - 0xF8B = { 4629, 1}, - 0xF8C = { 4630, 1}, - 0xF8D = { 4631, 2}, - 0xF91 = { 4633, 1}, - 0xF93 = { 4634, 1}, - 0xF99 = { 4635, 2}, - 0xF9B = { 4637, 1}, - 0xFA0 = { 4638, 3}, - 0xFA1 = { 4641, 3}, - 0xFA2 = { 4644, 3}, - 0xFA3 = { 4647, 3}, - 0xFA4 = { 4650, 3}, - 0xFA5 = { 4653, 3}, - 0xFA6 = { 4656, 1}, - 0xFA7 = { 4657, 1}, - 0xFA8 = { 4658, 10}, - 0xFA9 = { 4668, 10}, - 0xFAA = { 4678, 6}, - 0xFAB = { 4684, 1}, - 0xFAC = { 4685, 6}, - 0xFAD = { 4691, 6}, - 0xFAE = { 4697, 6}, - 0xFB0 = { 4703, 3}, - 0xFB5 = { 4706, 1}, - 0xFB8 = { 4707, 1}, - 0xFB9 = { 4708, 1}, - 0xFBA = { 4709, 1}, - 0xFBB = { 4710, 1}, - 0xFBC = { 4711, 1}, - 0xFBE = { 4712, 1}, - 0xFC0 = { 4713, 1}, - 0xFC1 = { 4714, 1}, - 0xFC2 = { 4715, 2}, - 0xFC3 = { 4717, 2}, - 0xFC4 = { 4719, 1}, - 0xFC5 = { 4720, 1}, - 0xFC6 = { 4721, 2}, - 0xFC7 = { 4723, 2}, - 0xFC8 = { 4725, 7}, - 0xFC9 = { 4732, 11}, - 0xFCA = { 4743, 2}, - 0xFCB = { 4745, 2}, - 0xFCC = { 4747, 7}, - 0xFCD = { 4754, 7}, - 0xFCE = { 4761, 2}, - 0xFCF = { 4763, 2}, - 0xFD9 = { 4765, 4}, - 0xFE0 = { 4769, 28}, - 0xFE1 = { 4797, 26}, - 0xFE2 = { 4823, 26}, - 0xFE3 = { 4849, 32}, - 0xFE4 = { 4881, 29}, - 0xFE5 = { 4910, 27}, - 0xFE6 = { 4937, 27}, - 0xFE7 = { 4964, 33}, - 0xFE8 = { 4997, 32}, - 0xFE9 = { 5029, 17}, - 0xFEA = { 5046, 17}, - 0xFEB = { 5063, 29}, - 0xFEC = { 5092, 31}, - 0xFED = { 5123, 18}, - 0xFEE = { 5141, 26}, - 0xFEF = { 5167, 32}, - 0xFF0 = { 5199, 19}, - 0xFF1 = { 5218, 18}, - 0xFF2 = { 5236, 17}, - 0xFF3 = { 5253, 17}, - 0xFF4 = { 5270, 19}, - 0xFF5 = { 5289, 18}, - 0xFF6 = { 5307, 17}, - 0xFF7 = { 5324, 17}, - 0xFF8 = { 5341, 4}, - 0xFF9 = { 5345, 4}, - 0xFFA = { 5349, 4}, - 0xFFB = { 5353, 17}, - 0xFFC = { 5370, 4}, - 0xFFD = { 5374, 4}, - 0xFFE = { 5378, 4}, - 0xFFF = { 5382, 17}, + 0xE84 = { 3491, 6}, + 0xE85 = { 3497, 2}, + 0xE86 = { 3499, 1}, + 0xE87 = { 3500, 1}, + 0xE88 = { 3501, 1}, + 0xE89 = { 3502, 1}, + 0xE8A = { 3503, 1}, + 0xE8B = { 3504, 2}, + 0xE8C = { 3506, 4}, + 0xE8D = { 3510, 6}, + 0xE8E = { 3516, 1}, + 0xE8F = { 3517, 1}, + 0xE90 = { 3518, 1}, + 0xE91 = { 3519, 1}, + 0xE92 = { 3520, 2}, + 0xE93 = { 3522, 1}, + 0xE94 = { 3523, 1}, + 0xE95 = { 3524, 1}, + 0xE96 = { 3525, 1}, + 0xE97 = { 3526, 2}, + 0xE9C = { 3528, 1}, + 0xE9D = { 3529, 1}, + 0xE9E = { 3530, 1}, + 0xE9F = { 3531, 1}, + 0xEA0 = { 3532, 2}, + 0xEA1 = { 3534, 3}, + 0xEA2 = { 3537, 1}, + 0xEA3 = { 3538, 1}, + 0xEA4 = { 3539, 7}, + 0xEA5 = { 3546, 7}, + 0xEA6 = { 3553, 1}, + 0xEA7 = { 3554, 1}, + 0xEA8 = { 3555, 1}, + 0xEA9 = { 3556, 2}, + 0xEB1 = { 3558, 1}, + 0xEB4 = { 3559, 1}, + 0xEB5 = { 3560, 1}, + 0xEB6 = { 3561, 1}, + 0xEB7 = { 3562, 1}, + 0xEBB = { 3563, 1}, + 0xEBC = { 3564, 1}, + 0xEBD = { 3565, 1}, + 0xEC0 = { 3566, 2}, + 0xEC1 = { 3568, 1}, + 0xEC2 = { 3569, 3}, + 0xEC3 = { 3572, 2}, + 0xEC4 = { 3574, 2}, + 0xEC5 = { 3576, 1}, + 0xEC6 = { 3577, 7}, + 0xEC7 = { 3584, 2}, + 0xEC8 = { 3586, 1}, + 0xEC9 = { 3587, 1}, + 0xECA = { 3588, 2}, + 0xECB = { 3590, 2}, + 0xECC = { 3592, 1}, + 0xECD = { 3593, 1}, + 0xECE = { 3594, 2}, + 0xECF = { 3596, 2}, + 0xED6 = { 3598, 4}, + 0xED8 = { 3602, 4}, + 0xED9 = { 3606, 4}, + 0xEDC = { 3610, 4}, + 0xEDD = { 3614, 4}, + 0xEE0 = { 3618, 23}, + 0xEE1 = { 3641, 22}, + 0xEE2 = { 3663, 22}, + 0xEE3 = { 3685, 29}, + 0xEE4 = { 3714, 23}, + 0xEE5 = { 3737, 22}, + 0xEE6 = { 3759, 22}, + 0xEE7 = { 3781, 29}, + 0xEE8 = { 3810, 28}, + 0xEE9 = { 3838, 12}, + 0xEEA = { 3850, 13}, + 0xEEB = { 3863, 18}, + 0xEEC = { 3881, 27}, + 0xEED = { 3908, 13}, + 0xEEE = { 3921, 22}, + 0xEEF = { 3943, 21}, + 0xEF0 = { 3964, 15}, + 0xEF1 = { 3979, 15}, + 0xEF2 = { 3994, 15}, + 0xEF3 = { 4009, 15}, + 0xEF4 = { 4024, 15}, + 0xEF5 = { 4039, 15}, + 0xEF6 = { 4054, 15}, + 0xEF7 = { 4069, 15}, + 0xEF8 = { 4084, 3}, + 0xEF9 = { 4087, 3}, + 0xEFA = { 4090, 3}, + 0xEFB = { 4093, 3}, + 0xEFC = { 4096, 3}, + 0xEFD = { 4099, 3}, + 0xEFE = { 4102, 3}, + 0xEFF = { 4105, 3}, + 0xF00 = { 4108, 10}, + 0xF01 = { 4118, 10}, + 0xF02 = { 4128, 7}, + 0xF03 = { 4135, 7}, + 0xF04 = { 4142, 10}, + 0xF05 = { 4152, 8}, + 0xF06 = { 4160, 6}, + 0xF07 = { 4166, 6}, + 0xF08 = { 4172, 4}, + 0xF09 = { 4176, 5}, + 0xF0A = { 4181, 3}, + 0xF0B = { 4184, 3}, + 0xF0C = { 4187, 3}, + 0xF0D = { 4190, 3}, + 0xF0E = { 4193, 3}, + 0xF0F = { 4196, 3}, + 0xF10 = { 4199, 5}, + 0xF11 = { 4204, 6}, + 0xF12 = { 4210, 5}, + 0xF13 = { 4215, 5}, + 0xF14 = { 4220, 6}, + 0xF15 = { 4226, 6}, + 0xF16 = { 4232, 6}, + 0xF17 = { 4238, 6}, + 0xF18 = { 4244, 3}, + 0xF19 = { 4247, 3}, + 0xF1A = { 4250, 3}, + 0xF1B = { 4253, 4}, + 0xF1C = { 4257, 4}, + 0xF1D = { 4261, 4}, + 0xF1E = { 4265, 3}, + 0xF1F = { 4268, 3}, + 0xF20 = { 4271, 3}, + 0xF21 = { 4274, 3}, + 0xF22 = { 4277, 3}, + 0xF23 = { 4280, 3}, + 0xF24 = { 4283, 4}, + 0xF25 = { 4287, 3}, + 0xF26 = { 4290, 3}, + 0xF27 = { 4293, 3}, + 0xF28 = { 4296, 3}, + 0xF29 = { 4299, 3}, + 0xF2A = { 4302, 3}, + 0xF2B = { 4305, 3}, + 0xF2C = { 4308, 4}, + 0xF2D = { 4312, 3}, + 0xF2E = { 4315, 3}, + 0xF2F = { 4318, 3}, + 0xF30 = { 4321, 4}, + 0xF31 = { 4325, 3}, + 0xF32 = { 4328, 5}, + 0xF33 = { 4333, 3}, + 0xF34 = { 4336, 4}, + 0xF35 = { 4340, 3}, + 0xF36 = { 4343, 5}, + 0xF37 = { 4348, 3}, + 0xF38 = { 4351, 5}, + 0xF39 = { 4356, 3}, + 0xF3A = { 4359, 18}, + 0xF3B = { 4377, 8}, + 0xF3C = { 4385, 4}, + 0xF3D = { 4389, 3}, + 0xF3E = { 4392, 4}, + 0xF3F = { 4396, 3}, + 0xF40 = { 4399, 5}, + 0xF41 = { 4404, 6}, + 0xF42 = { 4410, 4}, + 0xF43 = { 4414, 4}, + 0xF44 = { 4418, 6}, + 0xF45 = { 4424, 6}, + 0xF46 = { 4430, 4}, + 0xF47 = { 4434, 4}, + 0xF48 = { 4438, 4}, + 0xF49 = { 4442, 5}, + 0xF4A = { 4447, 3}, + 0xF4B = { 4450, 3}, + 0xF4C = { 4453, 3}, + 0xF4D = { 4456, 3}, + 0xF4E = { 4459, 3}, + 0xF4F = { 4462, 3}, + 0xF50 = { 4465, 3}, + 0xF51 = { 4468, 4}, + 0xF52 = { 4472, 3}, + 0xF53 = { 4475, 3}, + 0xF54 = { 4478, 4}, + 0xF55 = { 4482, 4}, + 0xF56 = { 4486, 4}, + 0xF57 = { 4490, 4}, + 0xF58 = { 4494, 3}, + 0xF59 = { 4497, 3}, + 0xF5A = { 4500, 3}, + 0xF5B = { 4503, 4}, + 0xF5C = { 4507, 4}, + 0xF5D = { 4511, 4}, + 0xF5E = { 4515, 3}, + 0xF5F = { 4518, 3}, + 0xF60 = { 4521, 3}, + 0xF61 = { 4524, 3}, + 0xF62 = { 4527, 3}, + 0xF63 = { 4530, 3}, + 0xF64 = { 4533, 4}, + 0xF65 = { 4537, 3}, + 0xF66 = { 4540, 3}, + 0xF67 = { 4543, 3}, + 0xF68 = { 4546, 3}, + 0xF69 = { 4549, 3}, + 0xF6A = { 4552, 3}, + 0xF6B = { 4555, 3}, + 0xF6C = { 4558, 4}, + 0xF6D = { 4562, 3}, + 0xF6E = { 4565, 3}, + 0xF6F = { 4568, 3}, + 0xF70 = { 4571, 3}, + 0xF71 = { 4574, 3}, + 0xF72 = { 4577, 3}, + 0xF73 = { 4580, 3}, + 0xF74 = { 4583, 3}, + 0xF75 = { 4586, 3}, + 0xF76 = { 4589, 3}, + 0xF77 = { 4592, 3}, + 0xF78 = { 4595, 6}, + 0xF79 = { 4601, 3}, + 0xF7A = { 4604, 3}, + 0xF7B = { 4607, 3}, + 0xF7C = { 4610, 3}, + 0xF7D = { 4613, 3}, + 0xF7E = { 4616, 3}, + 0xF7F = { 4619, 4}, + 0xF80 = { 4623, 1}, + 0xF81 = { 4624, 1}, + 0xF82 = { 4625, 1}, + 0xF83 = { 4626, 2}, + 0xF84 = { 4628, 1}, + 0xF85 = { 4629, 2}, + 0xF88 = { 4631, 1}, + 0xF89 = { 4632, 2}, + 0xF8A = { 4634, 1}, + 0xF8B = { 4635, 1}, + 0xF8C = { 4636, 1}, + 0xF8D = { 4637, 2}, + 0xF91 = { 4639, 1}, + 0xF93 = { 4640, 1}, + 0xF99 = { 4641, 2}, + 0xF9B = { 4643, 1}, + 0xFA0 = { 4644, 3}, + 0xFA1 = { 4647, 3}, + 0xFA2 = { 4650, 3}, + 0xFA3 = { 4653, 3}, + 0xFA4 = { 4656, 3}, + 0xFA5 = { 4659, 3}, + 0xFA6 = { 4662, 1}, + 0xFA7 = { 4663, 1}, + 0xFA8 = { 4664, 10}, + 0xFA9 = { 4674, 10}, + 0xFAA = { 4684, 6}, + 0xFAB = { 4690, 1}, + 0xFAC = { 4691, 6}, + 0xFAD = { 4697, 6}, + 0xFAE = { 4703, 6}, + 0xFB0 = { 4709, 3}, + 0xFB5 = { 4712, 1}, + 0xFB8 = { 4713, 1}, + 0xFB9 = { 4714, 1}, + 0xFBA = { 4715, 1}, + 0xFBB = { 4716, 1}, + 0xFBC = { 4717, 1}, + 0xFBE = { 4718, 1}, + 0xFC0 = { 4719, 1}, + 0xFC1 = { 4720, 1}, + 0xFC2 = { 4721, 2}, + 0xFC3 = { 4723, 2}, + 0xFC4 = { 4725, 1}, + 0xFC5 = { 4726, 1}, + 0xFC6 = { 4727, 2}, + 0xFC7 = { 4729, 2}, + 0xFC8 = { 4731, 7}, + 0xFC9 = { 4738, 11}, + 0xFCA = { 4749, 2}, + 0xFCB = { 4751, 2}, + 0xFCC = { 4753, 7}, + 0xFCD = { 4760, 7}, + 0xFCE = { 4767, 2}, + 0xFCF = { 4769, 2}, + 0xFD9 = { 4771, 4}, + 0xFE0 = { 4775, 28}, + 0xFE1 = { 4803, 26}, + 0xFE2 = { 4829, 26}, + 0xFE3 = { 4855, 32}, + 0xFE4 = { 4887, 29}, + 0xFE5 = { 4916, 27}, + 0xFE6 = { 4943, 27}, + 0xFE7 = { 4970, 33}, + 0xFE8 = { 5003, 32}, + 0xFE9 = { 5035, 17}, + 0xFEA = { 5052, 17}, + 0xFEB = { 5069, 29}, + 0xFEC = { 5098, 31}, + 0xFED = { 5129, 18}, + 0xFEE = { 5147, 26}, + 0xFEF = { 5173, 32}, + 0xFF0 = { 5205, 19}, + 0xFF1 = { 5224, 18}, + 0xFF2 = { 5242, 17}, + 0xFF3 = { 5259, 17}, + 0xFF4 = { 5276, 19}, + 0xFF5 = { 5295, 18}, + 0xFF6 = { 5313, 17}, + 0xFF7 = { 5330, 17}, + 0xFF8 = { 5347, 4}, + 0xFF9 = { 5351, 4}, + 0xFFA = { 5355, 4}, + 0xFFB = { 5359, 17}, + 0xFFC = { 5376, 4}, + 0xFFD = { 5380, 4}, + 0xFFE = { 5384, 4}, + 0xFFF = { 5388, 17}, } diff --git a/core/rexcode/arm32/tablegen/generated/encode_tables.odin b/core/rexcode/arm32/tablegen/generated/encode_tables.odin index d4644aee7..d24022618 100644 --- a/core/rexcode/arm32/tablegen/generated/encode_tables.odin +++ b/core/rexcode/arm32/tablegen/generated/encode_tables.odin @@ -8,7 +8,7 @@ package rexcode_arm32_generated import lib "../.." @(rodata) -ENCODE_FORMS := [1668]lib.Encoding{ +ENCODE_FORMS := [1671]lib.Encoding{ // .AND { .AND, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {} }, { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {} }, @@ -1720,6 +1720,10 @@ ENCODE_FORMS := [1668]lib.Encoding{ // .VSWP { .VSWP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {} }, { .VSWP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {} }, + // .VMOV_LANE + { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_8,.RT_A32,.NONE,.NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {} }, + { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_16,.RT_A32,.NONE,.NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {} }, + { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_32,.RT_A32,.NONE,.NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {} }, // .VLD1 { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200700, 0xFFF00F00, .NEON, .A32, {} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200A00, 0xFFF00F00, .NEON, .A32, {} }, @@ -2691,250 +2695,250 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .VZIP = { 1310, 5}, .VDUP = { 1315, 5}, .VSWP = { 1320, 2}, - .VMOV_LANE = { 1322, 0}, - .VLD1 = { 1322, 8}, - .VLD2 = { 1330, 3}, - .VLD3 = { 1333, 2}, - .VLD4 = { 1335, 2}, - .VST1 = { 1337, 7}, - .VST2 = { 1344, 3}, - .VST3 = { 1347, 2}, - .VST4 = { 1349, 2}, - .AESE = { 1351, 1}, - .AESD = { 1352, 1}, - .AESMC = { 1353, 1}, - .AESIMC = { 1354, 1}, - .SHA1H = { 1355, 1}, - .SHA1SU0 = { 1356, 1}, - .SHA1SU1 = { 1357, 1}, - .SHA1C = { 1358, 1}, - .SHA1M = { 1359, 1}, - .SHA1P = { 1360, 1}, - .SHA256H = { 1361, 1}, - .SHA256H2 = { 1362, 1}, - .SHA256SU0 = { 1363, 1}, - .SHA256SU1 = { 1364, 1}, - .VRINT = { 1365, 0}, - .VJCVT = { 1365, 1}, - .VSDOT = { 1366, 2}, - .VUDOT = { 1368, 2}, - .VSDOT_LANE = { 1370, 2}, - .VUDOT_LANE = { 1372, 2}, - .VCVT_BF16 = { 1374, 1}, - .VDOT_BF16 = { 1375, 2}, - .VFMA_BF16 = { 1377, 1}, - .VMMLA_BF16 = { 1378, 1}, - .VFMAL = { 1379, 2}, - .VFMSL = { 1381, 2}, - .VCMLA = { 1383, 2}, - .VCADD = { 1385, 2}, - .VCMLA_LANE = { 1387, 2}, - .VSMMLA = { 1389, 1}, - .VUMMLA = { 1390, 1}, - .VUSMMLA = { 1391, 1}, - .VSUDOT = { 1392, 1}, - .VUSDOT = { 1393, 2}, - .VSUDOT_LANE = { 1395, 1}, - .VUSDOT_LANE = { 1396, 2}, - .VMUL_LANE = { 1398, 6}, - .VMLA_LANE = { 1404, 6}, - .VMLS_LANE = { 1410, 6}, - .VMULL_LANE = { 1416, 4}, - .VMLAL_LANE = { 1420, 4}, - .VMLSL_LANE = { 1424, 4}, - .VQDMULL_LANE = { 1428, 2}, - .VQDMLAL_LANE = { 1430, 2}, - .VQDMLSL_LANE = { 1432, 2}, - .VFMA_LANE = { 1434, 2}, - .VFMS_LANE = { 1436, 2}, - .VQRDMLAH_LANE = { 1438, 4}, - .VQRDMLSH_LANE = { 1442, 4}, - .VQABS = { 1446, 1}, - .VQNEG = { 1447, 1}, - .VMOVX = { 1448, 1}, - .VINS = { 1449, 1}, - .VLDRB_GATHER = { 1450, 1}, - .VLDRH_GATHER = { 1451, 1}, - .VLDRW_GATHER = { 1452, 1}, - .VLDRD_GATHER = { 1453, 1}, - .VSTRB_SCATTER = { 1454, 1}, - .VSTRH_SCATTER = { 1455, 1}, - .VSTRW_SCATTER = { 1456, 1}, - .VSTRD_SCATTER = { 1457, 1}, - .VCEQ_Z = { 1458, 4}, - .VCGE_Z = { 1462, 4}, - .VCGT_Z = { 1466, 4}, - .VCLE_Z = { 1470, 4}, - .VCLT_Z = { 1474, 4}, - .VLD2R = { 1478, 1}, - .VLD3R = { 1479, 1}, - .VLD4R = { 1480, 1}, - .VLD1_LANE = { 1481, 3}, - .VLD2_LANE = { 1484, 3}, - .VLD3_LANE = { 1487, 3}, - .VLD4_LANE = { 1490, 3}, - .VST1_LANE = { 1493, 3}, - .VST2_LANE = { 1496, 3}, - .VST3_LANE = { 1499, 3}, - .VST4_LANE = { 1502, 3}, - .VCVT_FIXED = { 1505, 10}, - .IT = { 1515, 1}, - .TT = { 1516, 1}, - .TTT = { 1517, 1}, - .TTA = { 1518, 1}, - .TTAT = { 1519, 1}, - .SG = { 1520, 1}, - .BXNS = { 1521, 1}, - .BLXNS = { 1522, 1}, - .PAC = { 1523, 1}, - .PACBTI = { 1524, 1}, - .AUT = { 1525, 1}, - .AUTG = { 1526, 1}, - .BTI = { 1527, 1}, - .WLS = { 1528, 1}, - .WLSTP = { 1529, 1}, - .DLS = { 1530, 1}, - .DLSTP = { 1531, 1}, - .LE = { 1532, 1}, - .LETP = { 1533, 1}, - .LCTP = { 1534, 1}, - .BF = { 1535, 0}, - .BFI_BR = { 1535, 0}, - .BFL = { 1535, 0}, - .BFLX = { 1535, 0}, - .BFCSEL = { 1535, 0}, - .CX1 = { 1535, 1}, - .CX1A = { 1536, 1}, - .CX1D = { 1537, 1}, - .CX1DA = { 1538, 1}, - .CX2 = { 1539, 1}, - .CX2A = { 1540, 1}, - .CX2D = { 1541, 1}, - .CX2DA = { 1542, 1}, - .CX3 = { 1543, 1}, - .CX3A = { 1544, 1}, - .CX3D = { 1545, 1}, - .CX3DA = { 1546, 1}, - .VCX1 = { 1547, 2}, - .VCX1A = { 1549, 2}, - .VCX2 = { 1551, 2}, - .VCX2A = { 1553, 2}, - .VCX3 = { 1555, 2}, - .VCX3A = { 1557, 2}, - .VPT = { 1559, 1}, - .VPST = { 1560, 1}, - .VPSEL = { 1561, 1}, - .VPNOT = { 1562, 1}, - .VCTP = { 1563, 1}, - .VADDV = { 1564, 1}, - .VADDVA = { 1565, 1}, - .VADDLV = { 1566, 1}, - .VADDLVA = { 1567, 1}, - .VMAXV = { 1568, 1}, - .VMAXAV = { 1569, 1}, - .VMINV = { 1570, 1}, - .VMINAV = { 1571, 1}, - .VMAXNMV = { 1572, 1}, - .VMAXNMAV = { 1573, 1}, - .VMINNMV = { 1574, 1}, - .VMINNMAV = { 1575, 1}, - .VABAV = { 1576, 1}, - .VMLADAV = { 1577, 1}, - .VMLADAVA = { 1578, 1}, - .VMLADAVX = { 1579, 1}, - .VMLADAVAX = { 1580, 1}, - .VMLALDAV = { 1581, 1}, - .VMLALDAVA = { 1582, 1}, - .VMLALDAVX = { 1583, 1}, - .VMLALDAVAX = { 1584, 1}, - .VMLSDAV = { 1585, 1}, - .VMLSDAVA = { 1586, 1}, - .VMLSDAVX = { 1587, 1}, - .VMLSDAVAX = { 1588, 1}, - .VMLSLDAV = { 1589, 1}, - .VMLSLDAVA = { 1590, 1}, - .VMLSLDAVX = { 1591, 1}, - .VMLSLDAVAX = { 1592, 1}, - .VRMLALDAVH = { 1593, 1}, - .VRMLALDAVHA = { 1594, 1}, - .VRMLALDAVHX = { 1595, 1}, - .VRMLALDAVHAX = { 1596, 1}, - .VRMLSLDAVH = { 1597, 1}, - .VRMLSLDAVHA = { 1598, 1}, - .VRMLSLDAVHX = { 1599, 1}, - .VRMLSLDAVHAX = { 1600, 1}, - .VMLAV = { 1601, 1}, - .VMLAVA = { 1602, 1}, - .VMLSV = { 1603, 0}, - .VMLSVA = { 1603, 0}, - .VCMUL = { 1603, 1}, - .VHCADD = { 1604, 1}, - .VBRSR = { 1605, 1}, - .VSHLC = { 1606, 1}, - .VRSHL_MVE = { 1607, 0}, - .VDDUP = { 1607, 1}, - .VIDUP = { 1608, 1}, - .VDWDUP = { 1609, 1}, - .VIWDUP = { 1610, 1}, - .VMOVNB = { 1611, 1}, - .VMOVNT = { 1612, 1}, - .VQMOVNB = { 1613, 1}, - .VQMOVNT = { 1614, 1}, - .VQMOVUNB = { 1615, 1}, - .VQMOVUNT = { 1616, 1}, - .VSHLLB = { 1617, 1}, - .VSHLLT = { 1618, 1}, - .VMULLB = { 1619, 1}, - .VMULLT = { 1620, 1}, - .VMLALB = { 1621, 1}, - .VMLALT = { 1622, 1}, - .VMLSLB = { 1623, 1}, - .VMLSLT = { 1624, 1}, - .VSHRNB = { 1625, 1}, - .VSHRNT = { 1626, 1}, - .VRSHRNB = { 1627, 1}, - .VRSHRNT = { 1628, 1}, - .VQSHRNB = { 1629, 1}, - .VQSHRNT = { 1630, 1}, - .VQRSHRNB = { 1631, 1}, - .VQRSHRNT = { 1632, 1}, - .VQSHRUNB = { 1633, 1}, - .VQSHRUNT = { 1634, 1}, - .VQRSHRUNB = { 1635, 1}, - .VQRSHRUNT = { 1636, 1}, - .VMOV_Q_R = { 1637, 1}, - .VMOV_R_Q = { 1638, 1}, - .VMOV_2GPR_Q = { 1639, 1}, - .VQDMLADH = { 1640, 1}, - .VQDMLADHX = { 1641, 1}, - .VQDMLSDH = { 1642, 1}, - .VQDMLSDHX = { 1643, 1}, - .VQRDMLADH = { 1644, 1}, - .VQRDMLADHX = { 1645, 1}, - .VQRDMLSDH = { 1646, 1}, - .VQRDMLSDHX = { 1647, 1}, - .VPRINT = { 1648, 0}, - .VHCADD_SAT = { 1648, 0}, - .VCMLA_MVE = { 1648, 0}, - .VLDRB = { 1648, 1}, - .VLDRH = { 1649, 1}, - .VLDRW = { 1650, 1}, - .VLDRD = { 1651, 1}, - .VSTRB = { 1652, 1}, - .VSTRH = { 1653, 1}, - .VSTRW = { 1654, 1}, - .VSTRD = { 1655, 1}, - .VLD20 = { 1656, 1}, - .VLD21 = { 1657, 1}, - .VLD40 = { 1658, 1}, - .VLD41 = { 1659, 1}, - .VLD42 = { 1660, 1}, - .VLD43 = { 1661, 1}, - .VST20 = { 1662, 1}, - .VST21 = { 1663, 1}, - .VST40 = { 1664, 1}, - .VST41 = { 1665, 1}, - .VST42 = { 1666, 1}, - .VST43 = { 1667, 1}, - ._COUNT = { 1668, 0}, + .VMOV_LANE = { 1322, 3}, + .VLD1 = { 1325, 8}, + .VLD2 = { 1333, 3}, + .VLD3 = { 1336, 2}, + .VLD4 = { 1338, 2}, + .VST1 = { 1340, 7}, + .VST2 = { 1347, 3}, + .VST3 = { 1350, 2}, + .VST4 = { 1352, 2}, + .AESE = { 1354, 1}, + .AESD = { 1355, 1}, + .AESMC = { 1356, 1}, + .AESIMC = { 1357, 1}, + .SHA1H = { 1358, 1}, + .SHA1SU0 = { 1359, 1}, + .SHA1SU1 = { 1360, 1}, + .SHA1C = { 1361, 1}, + .SHA1M = { 1362, 1}, + .SHA1P = { 1363, 1}, + .SHA256H = { 1364, 1}, + .SHA256H2 = { 1365, 1}, + .SHA256SU0 = { 1366, 1}, + .SHA256SU1 = { 1367, 1}, + .VRINT = { 1368, 0}, + .VJCVT = { 1368, 1}, + .VSDOT = { 1369, 2}, + .VUDOT = { 1371, 2}, + .VSDOT_LANE = { 1373, 2}, + .VUDOT_LANE = { 1375, 2}, + .VCVT_BF16 = { 1377, 1}, + .VDOT_BF16 = { 1378, 2}, + .VFMA_BF16 = { 1380, 1}, + .VMMLA_BF16 = { 1381, 1}, + .VFMAL = { 1382, 2}, + .VFMSL = { 1384, 2}, + .VCMLA = { 1386, 2}, + .VCADD = { 1388, 2}, + .VCMLA_LANE = { 1390, 2}, + .VSMMLA = { 1392, 1}, + .VUMMLA = { 1393, 1}, + .VUSMMLA = { 1394, 1}, + .VSUDOT = { 1395, 1}, + .VUSDOT = { 1396, 2}, + .VSUDOT_LANE = { 1398, 1}, + .VUSDOT_LANE = { 1399, 2}, + .VMUL_LANE = { 1401, 6}, + .VMLA_LANE = { 1407, 6}, + .VMLS_LANE = { 1413, 6}, + .VMULL_LANE = { 1419, 4}, + .VMLAL_LANE = { 1423, 4}, + .VMLSL_LANE = { 1427, 4}, + .VQDMULL_LANE = { 1431, 2}, + .VQDMLAL_LANE = { 1433, 2}, + .VQDMLSL_LANE = { 1435, 2}, + .VFMA_LANE = { 1437, 2}, + .VFMS_LANE = { 1439, 2}, + .VQRDMLAH_LANE = { 1441, 4}, + .VQRDMLSH_LANE = { 1445, 4}, + .VQABS = { 1449, 1}, + .VQNEG = { 1450, 1}, + .VMOVX = { 1451, 1}, + .VINS = { 1452, 1}, + .VLDRB_GATHER = { 1453, 1}, + .VLDRH_GATHER = { 1454, 1}, + .VLDRW_GATHER = { 1455, 1}, + .VLDRD_GATHER = { 1456, 1}, + .VSTRB_SCATTER = { 1457, 1}, + .VSTRH_SCATTER = { 1458, 1}, + .VSTRW_SCATTER = { 1459, 1}, + .VSTRD_SCATTER = { 1460, 1}, + .VCEQ_Z = { 1461, 4}, + .VCGE_Z = { 1465, 4}, + .VCGT_Z = { 1469, 4}, + .VCLE_Z = { 1473, 4}, + .VCLT_Z = { 1477, 4}, + .VLD2R = { 1481, 1}, + .VLD3R = { 1482, 1}, + .VLD4R = { 1483, 1}, + .VLD1_LANE = { 1484, 3}, + .VLD2_LANE = { 1487, 3}, + .VLD3_LANE = { 1490, 3}, + .VLD4_LANE = { 1493, 3}, + .VST1_LANE = { 1496, 3}, + .VST2_LANE = { 1499, 3}, + .VST3_LANE = { 1502, 3}, + .VST4_LANE = { 1505, 3}, + .VCVT_FIXED = { 1508, 10}, + .IT = { 1518, 1}, + .TT = { 1519, 1}, + .TTT = { 1520, 1}, + .TTA = { 1521, 1}, + .TTAT = { 1522, 1}, + .SG = { 1523, 1}, + .BXNS = { 1524, 1}, + .BLXNS = { 1525, 1}, + .PAC = { 1526, 1}, + .PACBTI = { 1527, 1}, + .AUT = { 1528, 1}, + .AUTG = { 1529, 1}, + .BTI = { 1530, 1}, + .WLS = { 1531, 1}, + .WLSTP = { 1532, 1}, + .DLS = { 1533, 1}, + .DLSTP = { 1534, 1}, + .LE = { 1535, 1}, + .LETP = { 1536, 1}, + .LCTP = { 1537, 1}, + .BF = { 1538, 0}, + .BFI_BR = { 1538, 0}, + .BFL = { 1538, 0}, + .BFLX = { 1538, 0}, + .BFCSEL = { 1538, 0}, + .CX1 = { 1538, 1}, + .CX1A = { 1539, 1}, + .CX1D = { 1540, 1}, + .CX1DA = { 1541, 1}, + .CX2 = { 1542, 1}, + .CX2A = { 1543, 1}, + .CX2D = { 1544, 1}, + .CX2DA = { 1545, 1}, + .CX3 = { 1546, 1}, + .CX3A = { 1547, 1}, + .CX3D = { 1548, 1}, + .CX3DA = { 1549, 1}, + .VCX1 = { 1550, 2}, + .VCX1A = { 1552, 2}, + .VCX2 = { 1554, 2}, + .VCX2A = { 1556, 2}, + .VCX3 = { 1558, 2}, + .VCX3A = { 1560, 2}, + .VPT = { 1562, 1}, + .VPST = { 1563, 1}, + .VPSEL = { 1564, 1}, + .VPNOT = { 1565, 1}, + .VCTP = { 1566, 1}, + .VADDV = { 1567, 1}, + .VADDVA = { 1568, 1}, + .VADDLV = { 1569, 1}, + .VADDLVA = { 1570, 1}, + .VMAXV = { 1571, 1}, + .VMAXAV = { 1572, 1}, + .VMINV = { 1573, 1}, + .VMINAV = { 1574, 1}, + .VMAXNMV = { 1575, 1}, + .VMAXNMAV = { 1576, 1}, + .VMINNMV = { 1577, 1}, + .VMINNMAV = { 1578, 1}, + .VABAV = { 1579, 1}, + .VMLADAV = { 1580, 1}, + .VMLADAVA = { 1581, 1}, + .VMLADAVX = { 1582, 1}, + .VMLADAVAX = { 1583, 1}, + .VMLALDAV = { 1584, 1}, + .VMLALDAVA = { 1585, 1}, + .VMLALDAVX = { 1586, 1}, + .VMLALDAVAX = { 1587, 1}, + .VMLSDAV = { 1588, 1}, + .VMLSDAVA = { 1589, 1}, + .VMLSDAVX = { 1590, 1}, + .VMLSDAVAX = { 1591, 1}, + .VMLSLDAV = { 1592, 1}, + .VMLSLDAVA = { 1593, 1}, + .VMLSLDAVX = { 1594, 1}, + .VMLSLDAVAX = { 1595, 1}, + .VRMLALDAVH = { 1596, 1}, + .VRMLALDAVHA = { 1597, 1}, + .VRMLALDAVHX = { 1598, 1}, + .VRMLALDAVHAX = { 1599, 1}, + .VRMLSLDAVH = { 1600, 1}, + .VRMLSLDAVHA = { 1601, 1}, + .VRMLSLDAVHX = { 1602, 1}, + .VRMLSLDAVHAX = { 1603, 1}, + .VMLAV = { 1604, 1}, + .VMLAVA = { 1605, 1}, + .VMLSV = { 1606, 0}, + .VMLSVA = { 1606, 0}, + .VCMUL = { 1606, 1}, + .VHCADD = { 1607, 1}, + .VBRSR = { 1608, 1}, + .VSHLC = { 1609, 1}, + .VRSHL_MVE = { 1610, 0}, + .VDDUP = { 1610, 1}, + .VIDUP = { 1611, 1}, + .VDWDUP = { 1612, 1}, + .VIWDUP = { 1613, 1}, + .VMOVNB = { 1614, 1}, + .VMOVNT = { 1615, 1}, + .VQMOVNB = { 1616, 1}, + .VQMOVNT = { 1617, 1}, + .VQMOVUNB = { 1618, 1}, + .VQMOVUNT = { 1619, 1}, + .VSHLLB = { 1620, 1}, + .VSHLLT = { 1621, 1}, + .VMULLB = { 1622, 1}, + .VMULLT = { 1623, 1}, + .VMLALB = { 1624, 1}, + .VMLALT = { 1625, 1}, + .VMLSLB = { 1626, 1}, + .VMLSLT = { 1627, 1}, + .VSHRNB = { 1628, 1}, + .VSHRNT = { 1629, 1}, + .VRSHRNB = { 1630, 1}, + .VRSHRNT = { 1631, 1}, + .VQSHRNB = { 1632, 1}, + .VQSHRNT = { 1633, 1}, + .VQRSHRNB = { 1634, 1}, + .VQRSHRNT = { 1635, 1}, + .VQSHRUNB = { 1636, 1}, + .VQSHRUNT = { 1637, 1}, + .VQRSHRUNB = { 1638, 1}, + .VQRSHRUNT = { 1639, 1}, + .VMOV_Q_R = { 1640, 1}, + .VMOV_R_Q = { 1641, 1}, + .VMOV_2GPR_Q = { 1642, 1}, + .VQDMLADH = { 1643, 1}, + .VQDMLADHX = { 1644, 1}, + .VQDMLSDH = { 1645, 1}, + .VQDMLSDHX = { 1646, 1}, + .VQRDMLADH = { 1647, 1}, + .VQRDMLADHX = { 1648, 1}, + .VQRDMLSDH = { 1649, 1}, + .VQRDMLSDHX = { 1650, 1}, + .VPRINT = { 1651, 0}, + .VHCADD_SAT = { 1651, 0}, + .VCMLA_MVE = { 1651, 0}, + .VLDRB = { 1651, 1}, + .VLDRH = { 1652, 1}, + .VLDRW = { 1653, 1}, + .VLDRD = { 1654, 1}, + .VSTRB = { 1655, 1}, + .VSTRH = { 1656, 1}, + .VSTRW = { 1657, 1}, + .VSTRD = { 1658, 1}, + .VLD20 = { 1659, 1}, + .VLD21 = { 1660, 1}, + .VLD40 = { 1661, 1}, + .VLD41 = { 1662, 1}, + .VLD42 = { 1663, 1}, + .VLD43 = { 1664, 1}, + .VST20 = { 1665, 1}, + .VST21 = { 1666, 1}, + .VST40 = { 1667, 1}, + .VST41 = { 1668, 1}, + .VST42 = { 1669, 1}, + .VST43 = { 1670, 1}, + ._COUNT = { 1671, 0}, } diff --git a/core/rexcode/arm32/tables/arm32.bucket_list.bin b/core/rexcode/arm32/tables/arm32.bucket_list.bin index 479af5cda834a56fb3aacc1e67ddc916cfa3b864..eac32936cfacb4278cc399cf7a719b7618d5cbad 100644 GIT binary patch delta 5036 zcmZ1%vMXf66(MB`ofCZ znk*VDyexcR3{tDkq6Su{!J-MKL1G}R&Z0KCT3E5(gvFGFm&J_5oW+vGf`yO8ip846 zhQ*e}j>VA0h{c|Tm&Jj_k;RF{nT3zVg~gi1mBp4tmqm}ojm4eCgT<4@h{ce_n8k~Q zm&J$0o5hdC7s(8W3H~erEW9j1EP*V+EFnmy=(B{f7}P@zKsdvK#S+N~knz|Z0dhbn zniITPd{}&0{4n(6azYqOeK<=5OC(DaOEgOii!nfG(mma#?sC*k!1o)A4@MwH%kXgCrcMgPd!UN*tb(y zrn1Zg`*j-2ESA|Ub6Dmg`F0h{GM1GrOIVh&tYBHrvKZ{wHDKRvWZA&7nPn4_Z$XKF z2RQi?L-OxnL4lj+i-j`^CbOonrn089rm<$QX0m3pW=&?7@N}HOI+1k}YcXpPYYA%- zE3%qw)-2W>)?C&+)_m3i)Sf{d11M32dOr9ulvHm|R0~;e7GaC~d z3mYpN8yh2+T#>d9bCcq}hCd4MpCc-AlCdMYt zCc(zQ%E-#Z%FN2b%E~IqCdDSr#>vXX%FQanCcrAlD#R+xD#9wtD#rIus;thc!m7%u#;VRL&!)hp$fm@m%%;Mo%BIGq!K%)t$*RSw&8owy z!8W-|+{IOsO^Z#NO@~dFO^;2V&44YCHHbBsHH6iW&4|sI&4kUA&5X^Q&794G&4SI6 z&63TE&6>@I&6drM&5q5U&7RGH&4JBv@@8meQ=RXKP?rgHnujlgDi(w4znC#ImvRK zC~$5_s@>|)u?vWI0a%K@m0vn;1sj#QZ`n0Rt|VJgJmmyRs&XZ zRtr{3Rx4I(RvT7ZRy$UI)&SNJ)^OG+R&25$aW*uWdWc4l6eur)@~twf3YsE>8d9AS z#u|acF%X#_QP2ViR=l9Q4`MY$F{l_K&)>zg!)_B%T)-2X+XmJk`NnlNaR0c?5nXH9ac`>YUtcmsD z8YGjo0IDR8HH|f$6~qVE2CQ-5+67XdAhUCz^+z&m4pb*Z4MZ0%b{uOaRCOF{Dr+Wd z5o^?MJ6GtkVRmvEo3oFHbftUgvdhJQ2#?Xkj5CY zG(;RiLc}2?L}VJ&r?XgRvd&?h&ANbf2J3XzMXbwM=d&(lUBSAXbqVVt*2S!IS?94X zWL?R+ighjPBi0wJ8(1H)zGhv+`k3{3J?nbb$E>edSF=80ea5-eBFtx|wwg>sHp?tOr?-vz}$W%zBe`59=Y;6RhW0udv=? z-N?F+^$6=J)(foHSnsgzXFbY#n)M>&o@71GdX@Dy>pj*ttZ!K#vVLH_ z&-#wF{sHSp*7vOJY;0`IY%FX{Y^-d^>>sQ@S%0zqX8ptZmzACE6YFQzFRWi#zp;L2 z{l^Mvq$2d;R*O&r(*j)w4>o%CUi(ny@CO7OMsut~QG)OdD92IxFRR>ajPD zOxZZWO=?hkgd5sG0yUFC?HA%Kh5HcfRGc2HM{AWCvXSFQ@^#g7P~=aL#h?}stV;oF z>%jUA8f@6wHL$Ki2&-{Dn;9E^#l}Rb0QG^8n;Q7dg!NgB+3L;M$aT9Bn+ZXuLDaxH zZLl^IlH=;JGzuY_Kt4imKp|K?j!lzQoeiG~9L}jna}TwgL&(7z(0*zTi~*yOJJzrc OHKYp-Q-O;ntP=q0+Pc{Q delta 4889 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 Hi3mXeL%&4@ delta 5111 zcmbO{iRsEjrVZzLnF0eQU*r|m4GLgjV95W>(D461JEMX$10$oT7!ylifB?e*_5y|n z{Ok-25J7I9pn%DOe8P@_0RapPU~)2G4InuN28YiK4Iedr! z<-5UL@5jO*z_5VLfZ+i@D+7ZG1ET~h1Ghg90|NuYXN86fAahK?f=pnQ4`3=Gf)JGr zFqLKuj1r6tAe9FE3)nvJe*l>Y5rn8z`267m*lp%em7**R2K*0TN+F`${+llf^>Z^i zO-_^((RKql19x5U|?{bd|xh@(P^@=yuFw^0|UcG z1_p+|3=HgyGLslsG#D5J-6wa*+iH7=fh<>GX85pypMim4DuW&)1A_+(Sdj6!m|Ns9SD1!a_KZ6As6&Ar&Iv`Xc2_jT3hNu)}U|>i`KNkbTCWzN3d#YT5*gb)jfuR5tmOB_2wHX-LEG8SOifCJc zteL=qDrF89WEX&`XVGS05V4wEpej-il8RtpVE6}00t`DCKvIHc3=9kzuyg?x6afj& zKoSI5$_Mu9g&zzI;PeP_2_MKzhJYUj_>l#zKyHZt!N5=t$_+aqZZ@q4i8jD|0u{9Y z2`)er1beIj<}s*BuuTmxkL`rG9wZ1V2q0d93W8jp0Czn^P{fR3a+8{{HrNvfV4i>& z4e^8n%oDqy?wx!L8ZX%y8v?^R1oA8h6^zF?LxRO1|H;4L6G|@;O>KH zhlK6~n8Tog=HM_BfVpfp)McPBI{E-;`9nu7!< zFn-_%C+0u=;>SqD7KAZ9|sYy-?;P(etT8Ngh&7wR&QO$T6Zf(lxI1RtOY zf*pDQ=1{0gutOVQ4&94zXb{|?P(d?>$x52gFk1j~8pISxm?^+qwh!vE$qAa^FuQ;V zGpLj$1H%PGm_Y^2L4xow+lO#U7~Clkm5|_>@DrM0p@QJp7x)Ryu=}BIs0Y;+7hoX) z6}12f!s8JtXbBR8$0JnG93%*L(|&}T;^1zAsD!v_1I$fOL34)5MOwnzW+0zI;)t1n z;Q+*G79c@L93ccPCvVUaVKkq7R7=yr3}iQ4*Fm_h4-9Z!P(iTMAu-F$zyK9ApRA{? znFY=$8(x*4}}Efq_o|T=O!#WYAU8(SZv76JTHf)j+Qpbd?x&Y;4&a1i&fAeFgWlqFo4@4?;)ZP!9Sp+#0m;; zT_r|F8?ayiOyx%;l>so7pBQv?v>9ydLD^S;hXG>!XJo-Y3=oHYfeMO&lrq4Seuavf zZC+)#mQPHdfq{W*1K$V!4g9RHv`-eZ7y4=M^0 z<13GR1d^xkRhDtf|EDoi8z4Ov%sZ#5$ajtf_(@<26VyAEcu){a{P5ww6r;*(Mn-i82A-(NTWW1VQVfg-_&+dy_z#kM50YYt zn#^9OSs%>}YIHKZV_<0bFUzR#ol%idfB`D_4=VTrNw5K?@+Yz&Oyw^|MMg$}Xl|Yu z1_pH`WGS!5rirI2NGnA=H}sLU;tSUHuOKTAWS6# zlOiJ{R3+R@Mr1*lN+u>n4grQ}m3olx72Yr~7=T>L#H7e6z!0qt5;TAbGDDSu1Qq^3 zRWc*1gbA`RDROWKM60O9Ffb&*w6icNa&ihpt82zEFciQ9Sz#(c_9wvfvmz^n39^Bd zazv}BsxdG$!1S|$RB}eEYiKesOn?cpBddgIXGc~E6Xakr(&FNZWYE?TV&G@|_o1Kh zpERQaCzBBa14HCyyM{Z=VlfPP@{I55!kW%hJ$=?DLc!AY2g1x*&w0JlxD+m|!M@Bf@1NFi{3agwjyB-~oinFoYmN zWjI2RAMU0InBe4^wqM}RquhkI4DuU5p2%S0(q>@LGG$ z0bEc4Ay^0(WJCxS!37l&g2hn5dIknZglGv=lz|};Ay^6*WRPosSziVhR6q!p!vz@; Yf)#K;x;C(H7R*Msazf$B`)6qwNp z73gMVU|?ZjVCaX^lcDr4i}BOF{HxQ9l1bkmol;t=|Hrw}NCD z7#Ma!>Ag_;Ae24|rB6cDpMuh-LGNq<9 delta 663 zcmaE${y=?$2~Q*g0|SE=D+2=u0|SE*D+2>F0|SF8D+2=)0|SFOl(uALU|?rpU~quS zJ43}?p|m?I0|O%i1A_;Y_5{(BOL^iAL8ga-cnk~-VNlf(P&x`q$3W>gkh;mdyyEpB zvy!2rsZcr{N@qgpY$%-z(#62QkO!snp>zS1E`+KphVo0G{4!Ps1~vu;h8if{1f@Gz z8Il-S7#J9OSQ)_d1SmZPs&N{Wo&lw2LFqYAdLC5$A}GBKYVmR?y#ho}{>$s{2(o1x zRMjphy$?zsg3`x8su>swNW}9)X+bD045dY(v^X0i!X==zB#7Q@E8x$_39`x= v6tI(91?4$GG3gHGZ55Q?d`HlLQ4pk{03^h~zyPKvvkJ>kwh`_C1qTBFF3>yX diff --git a/core/rexcode/arm32/tables/arm32.entries.bin b/core/rexcode/arm32/tables/arm32.entries.bin index d5342fc9e01e82f72cdb4792d7657123706314ae..ae68d3d35b5f2b9194d1c0e538e101677751b048 100644 GIT binary patch delta 5811 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 delta 5730 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 JcmOj^1OVCeO}qdA diff --git a/core/rexcode/arm32/tables/arm32.form_idx.bin b/core/rexcode/arm32/tables/arm32.form_idx.bin index 4234fbbfeab92e2fbd2a1ead70f28f351de61aea..d61387cbd98a92e711f602c27a6d570e1dfd0318 100644 GIT binary patch delta 613 zcmeB>>XX_K!^q6Xz&Sad(UzH$fqC+LMrmdS29Ak^!jmsBvN3ZpuuQ(m=*`TzNr? z7#J9sz@p4xQ$g+n=>eI}$^c?9f@MK0kQm55knN0MGeIIC9xDULXCT+IfXxS)!oUDx zGlA8Cbb)LF(O^eHRMkU0!^{9N4kQg>gB%4i7}-$}S&;WZq6iGq3kedC3J_)j8xJxG zWDZCKgxMG%&IFkYQEv)iLX?AC3UM0?C~g?o86e^y<3YxN)PmWYf3hVqGBYtSPLAa8 ppS+A?7C*#vb_Pyx(&DQ93{oH$W*vID!oW;QM+W&n6QAin?r delta 600 zcmeB^>X6zH!^q6Zz&AOb(UzH+fphYFMrlTliG`w*FEFw(voLT?zRBp#%*ensS)FOM zvm}Ekg9L*(gBSx0a4~Q*2r-B-a5L~Sa4`ro2r}?7@H6l*2r#fgm9Q{yFfcPPF|aYP zGq5snP8MaZWoBVuoII7emYIWrZL%m!HZwN^@8o8d^YP3KtPBv$%)rdR$iT<|q8Y&Y z85tNDn7|?+gF$j28iJV_*cezDSQt1NI2hO&m>8HDI2l+N*uXqiur3A$Mh1q-8(Br` z85x+swlFZTfK`IbWd^fBCV*@O*#okP1*#6D7o-X#4ssEQ4>5y@JY2K_-HH z3bFwt3Q`Nv2XiG814BK?AyA7!3Yi%|#(|6mSqrcZW0>+ delta 112 zcmZqRXyDk;#Ox}>aD$VN;Tfk8!w*h=26iq%1_>@+230O026HZc1~)E#hEOhUh6FBd zhHNfhh8=;$>v;=4E8?;bmm-pU;bodw zZk@)+P|M56P{+&2P|wTA(7?;c(8$Zk(8SBm(8A;$>v8=4E2AuT=4E7X;bmlSn;;bme-<7HyV z;ALdUY;$>vW=4E8a;bmmVbQj&CUU1TeB+j45a3Z{Fys+paOUA;@Zk|*NZ@g2Sk5EH Ju$QNf0RXzQ2g?8e literal 512 zcmZP=1;Z)?{J6y#Qn`g0D!7Fiy17#sK5$DhaPcTIX!8g$*z#~PxbcWEMDe&YEaVYm J*v?bO006UN2ZI0r diff --git a/core/rexcode/arm32/tables/arm32.idx_t32_sub.bin b/core/rexcode/arm32/tables/arm32.idx_t32_sub.bin index 9b39a5698748cedcbb3142bcd8c3295704d5208c..e53d805305a9aa58feee86aea3d1db1ad281532b 100644 GIT binary patch delta 1359 zcmZo@U~Fh$+#q0Oy_lDcVI?mU!)jhehBds53~PBA8P@SKGOXuiWZ1yV#IT8%g<%^n z8^a!6Muxq-j12pD85#ETGBOLz46T>-P zW`>Krj0~4}85u6~vNPP`WoLNE%gFGEmyzKyFC)VfUZ#nRvh~k+8R3RK=VfGg!OO_- zl9!R;6_Pke!E0VdhBv&73~!Od-|;dreBfnd_{hu5@P(I&;Tta#!w+6YhM&Cb3=Dis z3`~5C49t9t3@m(13~YQ%3>F&hFf-f}U}ktIz{2oUfSKWi04u{=0cM5|0xS$)f&`cuz6-E2 z{1ISg_%Fc9z#_=Zz%D4nASuYfpeV?~peo4BpdrY@pd-l4pfAYEU?RxIU?s@HU?<4J z;3UY#;33Gy;3vq!5G2UL5GKgN5GBYuS>IN?o|&OgkeQ)GkcFW_keQ)ckeQ)QkcFX1 zkcFX5kcFX3kcFX7keOkkATz@hL1u>Of-DTP1z8y83$idQ7G!2vCdkaNQjnQpjUY3_ zdO>D}O@hn}TLoDdb_y~x>=9&U*e}S;a7d7u;iw=p!wErVhSP$~4Ce${7%mAiGh7v9 zX1Fo=sI6>0Gs6c#W`@s#Yz#jInHl~FGBf-aWM*IzVrF0!VrJkFVrJkLVqxGHVq_2y zVq_2$Vq_2!Vqy>xVq_2%0;f+F6JlgA7h+_v z5aMER65?X;5n^Kq5@KWs7Gh(F6k=nD7h(gOkUIIGop5#rlF6Auj0{;qj11XAj0`zK zj10L@xjZPHFT}`DAjHT}D8$52EX2f6D#XZ8Cd9~4F2ux8Da6E3EyT{yB*e|oE5yXm zFT}(!QHY&kh7dc$d?6-=g+fdd8C97V3$aXOl&oJaB*So6NQ&XEkQBprAq56;VOa(f zVQB_`VQGdeVMT^+VFiZO!h#HYgasMS3d=IQ5|(G+6cJ*O7Lj5w6;WUa6%l605D{Xi z5)owR77=8aBO=VOUPOrDpok#DB@sb}$095Y&qY`mUW>3WycZEr`=)kK0 delta 1353 zcmZo@U~Fh$+#q08KbMz{VKFZg!%|*GhGo2r49j^L8CLKzGOXlfWLU+^#IS~!g<%6P z8^bnUMuzRYj0`(?85wr+GBWJqWn$RF%gC^omyux~FC)W#UPgukyi5$};1Dk(!(m=V zh9kU;3`cnx8IJKXF`VFKW;o5u$Z&?2QG($tFFV5(UUr7tyo?NYco`Y)@-i~q<7Jx2 zC|m!4ml1BX6g=f+WO&BQ$nYFV`~@!)!z*4!hS$8z4DWcE z7(VbaF?`}>WcbX>&hU$uiQx|~Bg0=_MuvYNH}f$uF!3=mF!M1ou<$W4u$w;N1h^Qa1lSoA1=txh1h^QC1UMM1 z1lSlH1lSnd1Xvin1XvmT1(+Fv1eh5@1(+Ek1eh731(+G)1eh5T1y~u<1lSmI1Xvjg z1y~u%1lSmA1lSmw1lSll1lSn*1eh5n3NSNF5nyJRF2KStTY!aOz5oluVgY7`Wdh6$ zE9(WA8P*6eGprY2X4oXa%&=8}g<+=vGs7MMW`_L&%nXMFm>G@=Ff*JGU}iWiz|3$? zfQ8|b05ii?0cM690?Z7z1y~sF3otW05@2O`F2Kz2N`Qsood7e#M*&ubZvxB=KLuDB z{s}NMFbWDW2n%vBNDHzs$O|$vC<(GKs0lJN)N2Z|GUy4iF_;LlFjxq(FxUvPF*pgb zF?a~FF!%_vFa!v)FoX!QGDHe8GsFloGsFurGb9NzGo%VKGh_%dGh_=gGvo=fFcb+g zGn5K4GgJt&Fw_XLFf<6VFtiA=FmwnqGjt0wGxP~EGfWg@VVEk&!Z1^ig<-BBGs6Nw zW*dgZg3Jud1eqCD3NkaS5oBgqFUZ2MS&*4wn;(`vsX94hb?d92I0{ zI3dWwa7K`s;k+R87L1NQj9+M2L|=REUv5Oo)*|97!IeNKy!r zb)?98QiT{9(u5cp z(xGx0P&!kHks(Wnks(`%i6K{ri6LKzk)c3{k)cqCiJ@4CiJ?@8ouNjEo1tBZiJ?=7 ziJ@DFonev?JHt#NCWhHUOcNPZndb_zOk|X-UnnHQuvbWm;ku9%!$%w220dYE z22WvWh7@5%hE`z(hNZ%S4BLbS8IB9fGCUEMXJ8f)Vh|OPV$c^+VDJ|aW=IkdVki+2 zWM~x;WSAx*%&<~Kh+(&gAj26EL58~`EDR4tSQws)urRz75oGu!!ou)RgoS}gl!bv! IRFIJY0MGoxlK=n!