From 239dea4f55918c06795ead1302b2e622d98f24c1 Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Thu, 18 Jun 2026 01:47:44 -0400 Subject: [PATCH] rexcode/arm32: MVE VHCADD (saturating halving complex add) + VCMLA New MVE_ROT_HCADD (#90/#270 at bit12) and MVE_ROT_CMLA (#0/90/180/270 at bits 24:23) rotation encodings -- the rotation degrees round-trip properly (unlike the existing FCMA VCMLA which leaves it unencoded). One form each with the element-size bits left variable (MVE convention). Verify round-trips; all rotations byte-exact vs llvm-mc; 600 tests green. (VMLSV/VMLSVA reduce ops deferred: their format decode-collides with other MVE encodings given the 4-bit VN_Q vs MVE's 3-bit Qn.) --- core/rexcode/arm32/decoder.odin | 4 + core/rexcode/arm32/encoder.odin | 4 + core/rexcode/arm32/encoding_types.odin | 4 + core/rexcode/arm32/mnemonic_builders.odin | 8 + .../arm32/tablegen/encoding_table.odin | 8 + .../tablegen/generated/decode_tables.odin | 1323 +++++++++-------- .../tablegen/generated/encode_tables.odin | 52 +- .../arm32/tables/arm32.bucket_list.bin | Bin 10810 -> 10834 bytes .../arm32/tables/arm32.encode_forms.bin | Bin 35091 -> 35133 bytes .../arm32/tables/arm32.encode_runs.bin | Bin 5088 -> 5088 bytes core/rexcode/arm32/tables/arm32.entries.bin | Bin 35091 -> 35133 bytes core/rexcode/arm32/tables/arm32.form_idx.bin | Bin 3342 -> 3346 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 15 files changed, 721 insertions(+), 682 deletions(-) diff --git a/core/rexcode/arm32/decoder.odin b/core/rexcode/arm32/decoder.odin index dde605999..bec18c8f9 100644 --- a/core/rexcode/arm32/decoder.odin +++ b/core/rexcode/arm32/decoder.odin @@ -352,6 +352,10 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op lane = (word >> 21) & 1 } return op_dpr_lane(Register(REG_DPR | u16(n)), u8(lane)) + case .MVE_ROT_HCADD: + return op_imm(((word >> 12) & 1) == 1 ? 270 : 90) + case .MVE_ROT_CMLA: + return op_imm(i64((word >> 23) & 0x3) * 90) 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 2181a40a8..a1951ee37 100644 --- a/core/rexcode/arm32/encoder.odin +++ b/core/rexcode/arm32/encoder.odin @@ -436,6 +436,10 @@ pack_operand_inline :: #force_inline proc( v |= (l & 1) << 21 } return v + case .MVE_ROT_HCADD: + return (u32(op.immediate) == 270 ? 1 : 0) << 12 + case .MVE_ROT_CMLA: + return ((u32(op.immediate) / 90) & 0x3) << 23 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 9569b5b13..2353ba4f6 100644 --- a/core/rexcode/arm32/encoding_types.odin +++ b/core/rexcode/arm32/encoding_types.odin @@ -312,6 +312,10 @@ Operand_Encoding :: enum u8 { VMOV_LANE_8, VMOV_LANE_16, VMOV_LANE_32, + // MVE complex-op rotation immediate (user passes degrees): + // MVE_ROT_HCADD: #90/#270 -> bit 12; MVE_ROT_CMLA: #0/90/180/270 -> bits 24:23 + MVE_ROT_HCADD, + MVE_ROT_CMLA, 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 a4620e924..74f5930df 100644 --- a/core/rexcode/arm32/mnemonic_builders.odin +++ b/core/rexcode/arm32/mnemonic_builders.odin @@ -1388,6 +1388,10 @@ inst_vqrdmlsdh_q_q_q :: #force_inline proc "contextless" (dst: Regis emit_vqrdmlsdh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsdh_q_q_q(dst, src, src2)) } inst_vqrdmlsdhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSDHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } emit_vqrdmlsdhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsdhx_q_q_q(dst, src, src2)) } +inst_vhcadd_sat_q_q_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VHCADD_SAT, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } +emit_vhcadd_sat_q_q_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vhcadd_sat_q_q_q_imm(dst, src, src2, imm)) } +inst_vcmla_mve_q_q_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCMLA_MVE, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } +emit_vcmla_mve_q_q_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vcmla_mve_q_q_q_imm(dst, src, src2, imm)) } inst_vldrb_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } emit_vldrb_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrb_q_mem(dst, src)) } inst_vldrh_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } @@ -2637,6 +2641,10 @@ inst_vqrdmlsdh :: inst_vqrdmlsdh_q_q_q emit_vqrdmlsdh :: emit_vqrdmlsdh_q_q_q inst_vqrdmlsdhx :: inst_vqrdmlsdhx_q_q_q emit_vqrdmlsdhx :: emit_vqrdmlsdhx_q_q_q +inst_vhcadd_sat :: inst_vhcadd_sat_q_q_q_imm +emit_vhcadd_sat :: emit_vhcadd_sat_q_q_q_imm +inst_vcmla_mve :: inst_vcmla_mve_q_q_q_imm +emit_vcmla_mve :: emit_vcmla_mve_q_q_q_imm inst_vldrb :: inst_vldrb_q_mem emit_vldrb :: emit_vldrb_q_mem inst_vldrh :: inst_vldrh_q_mem diff --git a/core/rexcode/arm32/tablegen/encoding_table.odin b/core/rexcode/arm32/tablegen/encoding_table.odin index 59b5b723d..252359cc7 100644 --- a/core/rexcode/arm32/tablegen/encoding_table.odin +++ b/core/rexcode/arm32/tablegen/encoding_table.odin @@ -3688,6 +3688,14 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_32, .RT_A32, .NONE, .NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {}}, }, + // MVE (M-profile vector) multiply-subtract-across-vector reduce, halving + // complex add (saturating), and complex multiply-accumulate. T32; the + // complex ops carry a rotation immediate (degrees). + // One form per mnemonic with the element-size bits left variable in the + // mask (the MVE convention); the complex ops encode the rotation immediate. + .VHCADD_SAT = { {.VHCADD_SAT, {.QPR, .QPR, .QPR, .IMM}, {.VD_Q, .VN_Q, .VM_Q, .MVE_ROT_HCADD}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}} }, + .VCMLA_MVE = { {.VCMLA_MVE, {.QPR, .QPR, .QPR, .IMM}, {.VD_Q, .VN_Q, .VM_Q, .MVE_ROT_CMLA}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}} }, + // SPECGEN:BEGIN .VADDL = { {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, diff --git a/core/rexcode/arm32/tablegen/generated/decode_tables.odin b/core/rexcode/arm32/tablegen/generated/decode_tables.odin index d326d0b61..79bdc6746 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 := [1671]lib.Decode_Entry{ +DECODE_ENTRIES := [1673]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,11 +183,11 @@ DECODE_ENTRIES := [1671]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}, 0xF2000D40, 0xFFB00F50, .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, {} }, { .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, {} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {} }, { .VFMA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {} }, { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {} }, { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {} }, @@ -215,8 +215,8 @@ DECODE_ENTRIES := [1671]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}, 0xF2000D10, 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, {} }, { .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, {} }, @@ -244,8 +244,8 @@ DECODE_ENTRIES := [1671]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}, 0xF2100840, 0xFFB00F50, .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, {} }, { .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 := [1671]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}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .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, {} }, { .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, {} }, @@ -337,8 +337,8 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {} }, { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {} }, { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {} }, { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {} }, { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {} }, { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {} }, @@ -370,39 +370,39 @@ DECODE_ENTRIES := [1671]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}, 0xF2800F50, 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}, 0xF2800F50, 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}, 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}, 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}, 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}, 0xF2800610, 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}, 0xF2800F10, 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}, 0xF2800810, 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}, 0xF2800C10, 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}, 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, {} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800C00, 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}, 0xF2800030, 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}, 0xF2800830, 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, {} }, @@ -466,8 +466,8 @@ DECODE_ENTRIES := [1671]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}, 0xF2A00440, 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, {} }, { .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, {} }, @@ -486,8 +486,8 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {} }, { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {} }, { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {} }, { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {} }, { .VACLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {} }, { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {} }, @@ -503,8 +503,8 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {} }, { .VEOR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {} }, { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {} }, { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {} }, { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {} }, { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {} }, { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {} }, @@ -530,8 +530,8 @@ DECODE_ENTRIES := [1671]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}, 0xF3000310, 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, {} }, { .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, {} }, @@ -688,10 +688,10 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {} }, { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {} }, { .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}, 0xF3A000C0, 0xFFB00F50, .NEON, .A32, {} }, + { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00840, 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}, 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, {} }, @@ -702,13 +702,13 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .VQRDMLAH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {} }, { .VQRDMLSH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {} }, { .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}, 0xF3BB0540, 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}, 0xF3BB05C0, 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}, 0xF3BB04C0, 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, {} }, @@ -718,125 +718,125 @@ DECODE_ENTRIES := [1671]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, {.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}, 0xF3B50340, 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, {.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, {.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}, 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}, 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, {.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}, 0xF3B503C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10380, 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}, 0xF3B50380, 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}, 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, {} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20200, 0xFFB30FD0, .NEON, .A32, {} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20280, 0xFFB30FD0, .NEON, .A32, {} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B202C0, 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, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B202C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60280, 0xFFB30FD0, .NEON, .A32, {} }, { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B602C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .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, {} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60280, 0xFFB30FD0, .NEON, .A32, {} }, { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 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}, 0xF3BA0240, 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, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80200, 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, {} }, { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B006C0, 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}, 0xF3B20300, 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, {} }, - { .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, {} }, + { .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}, 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, {} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B804C0, 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, {} }, - { .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, {} }, { .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, {} }, + { .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, {} }, - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40080, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV16, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 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}, 0xF3B400C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 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, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40000, 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, {.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}, 0xF3B40040, 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, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFB30FD0, .NEON, .A32, {} }, { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BA0080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFB30FD0, .NEON, .A32, {} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFB30FD0, .NEON, .A32, {} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B200C0, 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, {.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, {} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 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}, 0xF3BA01C0, 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}, 0xF3B601C0, 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, {} }, + { .VSWP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20000, 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}, 0xF3B10140, 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, {} }, + { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90500, 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, {.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}, 0xF3B100C0, 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, {} }, + { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10040, 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, {.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}, 0xF3B90640, 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, {} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {} }, + { .VTBL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00800, 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}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {} }, { .VTBX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00840, 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, {} }, { .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} }, @@ -844,40 +844,40 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .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}, 0xF4000700, 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, {} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000700, 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}, 0xF4000200, 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, {} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000800, 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}, 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}, 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}, 0xF4200800, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200700, 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, {} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200900, 0xFFF00F00, .NEON, .A32, {} }, { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200500, 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, {} }, { .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, {} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00F00, .NEON, .A32, {} }, { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800100, 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}, 0xF4800900, 0xFFB00D00, .NEON, .A32, {} }, { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800A00, 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, {} }, { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800B00, 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}, 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, {} }, @@ -886,18 +886,18 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .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_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, {} }, + { .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, {} }, { .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}, 0xF4A00900, 0xFFB00D00, .NEON, .A32, {} }, { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00100, 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}, 0xF4A00B00, 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, {} }, { .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}, 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}, 0xF4A00800, 0xFFB00C00, .NEON, .A32, {} }, @@ -1196,14 +1196,14 @@ DECODE_ENTRIES := [1671]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}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .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}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .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}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 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}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, + { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBF0A40, 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, {} }, @@ -1295,6 +1295,7 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .VMAXAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, { .VMINV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, { .VMINAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VHCADD_SAT, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_HCADD}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true} }, { .VDUP, {.QPR,.GPR,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true} }, { .VMLSLDAV, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true} }, { .VMLSLDAVA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true} }, @@ -1546,6 +1547,7 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ { .VLDRH_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, { .VLDRW_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, { .VLDRD_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, + { .VCMLA_MVE, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_CMLA}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true} }, { .VLDRB_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true} }, { .VCX1A, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, { .VCX1A, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true} }, @@ -1683,7 +1685,7 @@ DECODE_ENTRIES := [1671]lib.Decode_Entry{ } @(rodata) -DECODE_FORM_IDX := [1671]u16{ +DECODE_FORM_IDX := [1673]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, @@ -1694,29 +1696,29 @@ DECODE_FORM_IDX := [1671]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, 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, 9, 3, + 1, 1, 1, 0, 0, 0, 5, 4, 1, 1, 1, 1, 1, 1, 9, 14, + 8, 10, 6, 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, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 10, 4, 9, 7, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 10, 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, 10, 1, 1, 1, 1, 1, 1, 3, 5, 5, 5, 11, 14, 10, + 1, 1, 1, 10, 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, + 1, 2, 2, 0, 2, 2, 2, 2, 2, 8, 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, 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, + 3, 3, 0, 3, 0, 3, 0, 0, 0, 25, 24, 21, 22, 23, 0, 0, + 0, 0, 10, 11, 12, 17, 13, 20, 19, 11, 14, 10, 16, 15, 18, 6, + 0, 0, 0, 4, 8, 2, 3, 6, 9, 7, 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, 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, + 1, 1, 1, 2, 2, 1, 4, 1, 4, 4, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 1, 1, 0, 1, 0, 3, 0, 3, 0, 3, 13, 7, 7, + 1, 9, 9, 14, 12, 6, 7, 7, 9, 9, 7, 7, 1, 3, 9, 7, 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, 6, 8, 6, 0, 6, 6, 4, + 3, 6, 6, 8, 8, 6, 6, 0, 0, 8, 6, 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, @@ -1726,20 +1728,20 @@ DECODE_FORM_IDX := [1671]u16{ 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, 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, + 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, + 1, 1, 3, 3, 0, 2, 3, 0, 1, 2, 3, 0, 1, 0, 1, 1, + 0, 0, 0, 0, 0, 3, 6, 5, 4, 9, 8, 7, 2, 4, 9, 7, + 8, 6, 2, 5, 3, 1, 0, 1, 2, 0, 0, 3, 2, 5, 4, 1, + 1, 0, 2, 4, 0, 5, 2, 1, 3, 3, 0, 1, 2, 2, 3, 4, + 5, 2, 0, 4, 3, 1, 4, 3, 5, 1, 2, 0, 0, 1, 1, 0, + 2, 1, 3, 0, 2, 5, 1, 3, 0, 4, 4, 0, 5, 2, 1, 3, + 0, 4, 1, 2, 3, 1, 4, 2, 3, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 3, 2, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 1, 0, + 2, 1, 0, 3, 2, 3, 1, 0, 2, 0, 3, 1, 3, 2, 3, 0, + 3, 0, 3, 2, 0, 1, 3, 2, 1, 0, 1, 0, 1, 0, 2, 1, + 3, 0, 2, 0, 1, 1, 0, 1, 0, 6, 4, 5, 0, 1, 2, 2, + 0, 1, 0, 2, 1, 2, 1, 0, 2, 2, 0, 0, 0, 5, 7, 4, + 6, 1, 2, 0, 0, 2, 1, 0, 2, 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, @@ -1758,41 +1760,41 @@ DECODE_FORM_IDX := [1671]u16{ 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, + 1, 0, 0, 6, 0, 3, 9, 2, 7, 8, 1, 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, 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, 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, + 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, 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, 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, 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 := [5405]u16{ +DECODE_BUCKET_LIST := [5417]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, @@ -1985,152 +1987,153 @@ DECODE_BUCKET_LIST := [5405]u16{ 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, + 1381, 1382, 1383, 1384, 1385, 1386, 1388, 1387, 1389, 1390, 1391, 1392, 1393, 1394, 1396, 1395, 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, + 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1396, + 1395, 1397, 1379, 1380, 1381, 1382, 1384, 1383, 1385, 1388, 1387, 1389, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 1397, 1428, 1429, 1430, 1431, 1426, 1427, 1395, 1396, 1397, 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, + 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, + 1547, 1270, 1271, 1272, 1273, 1274, 1275, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 1560, 1561, 1562, 1280, 1281, 1282, 1283, 1284, 1285, 1563, 1564, 1565, 1290, + 1291, 1292, 1566, 1297, 1298, 1299, 1300, 1301, 1302, 1306, 1307, 1567, 1308, 1309, 1568, 1310, + 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1569, 1570, 1571, 1572, 1573, 1574, + 1575, 1576, 1321, 1577, 1322, 1323, 1324, 1325, 1578, 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, 1579, 1580, 1581, 1582, 1583, + 1584, 1585, 1586, 1362, 1363, 1364, 1365, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1593, 1594, + 1594, 1595, 1595, 1596, 1597, 1598, 1599, 1600, 1600, 1601, 1601, 1602, 1602, 1603, 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, + 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, + 1636, 1636, 1637, 1637, 1638, 1638, 1639, 1639, 1640, 1640, 1641, 1641, 1642, 1642, 1643, 1643, + 1644, 1644, 1645, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, + 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1667, 1668, 1668, 1669, 1669, 1669, + 1670, 1671, 1669, 1672, 1672, 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, 1286, 1290, 1291, 1303, 1304, 1306, 1307, 1308, 1319, 1320, 1323, 1326, + 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1370, 1286, 1290, 1291, 1303, + 1305, 1306, 1307, 1308, 1320, 1323, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, + 1346, 1347, 1370, 1290, 1291, 1303, 1304, 1306, 1307, 1308, 1320, 1323, 1326, 1327, 1330, 1331, + 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1370, 1276, 1277, 1278, 1279, 1290, 1291, 1292, + 1303, 1305, 1306, 1307, 1308, 1309, 1318, 1320, 1323, 1326, 1327, 1330, 1331, 1332, 1333, 1334, + 1335, 1344, 1345, 1346, 1347, 1370, 1290, 1291, 1304, 1306, 1307, 1308, 1319, 1320, 1323, 1326, + 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1366, 1370, 1290, 1291, 1305, + 1306, 1307, 1308, 1320, 1323, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, 1346, + 1347, 1366, 1370, 1290, 1291, 1304, 1306, 1307, 1308, 1320, 1323, 1326, 1327, 1330, 1331, 1332, + 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1366, 1370, 1276, 1277, 1278, 1279, 1290, 1291, 1292, + 1305, 1306, 1307, 1308, 1309, 1318, 1320, 1323, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, + 1344, 1345, 1346, 1347, 1366, 1370, 1270, 1271, 1287, 1288, 1289, 1299, 1300, 1301, 1302, 1312, + 1313, 1314, 1315, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1360, 1361, 1365, + 1368, 1371, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1368, 1371, 1287, 1328, + 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1368, 1371, 1297, 1298, 1310, 1311, 1316, + 1317, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1368, 1371, 1287, 1288, 1289, + 1299, 1300, 1301, 1302, 1312, 1313, 1314, 1315, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1360, 1361, 1365, 1367, 1369, 1371, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1367, 1369, 1371, 1272, 1273, 1274, 1275, 1282, 1283, 1284, 1285, 1287, 1328, 1329, + 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1367, 1369, 1371, 1280, 1281, 1297, 1298, 1310, + 1311, 1316, 1317, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1367, 1369, 1371, + 1293, 1321, 1324, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1294, + 1321, 1324, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1295, 1322, + 1325, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1296, 1322, 1325, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1293, 1321, 1324, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1294, 1321, 1324, 1348, 1349, + 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1295, 1322, 1325, 1348, 1349, 1350, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1296, 1322, 1325, 1348, 1349, 1350, 1351, + 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1362, 1363, 1364, 1362, 1363, 1364, 1362, 1363, + 1364, 1362, 1363, 1364, 1362, 1363, 1364, 1362, 1363, 1364, 1362, 1363, 1364, 1362, 1363, 1364, + 1372, 1374, 1375, 1376, 1386, 1388, 1387, 1396, 1395, 1397, 1374, 1375, 1377, 1379, 1386, 1388, + 1387, 1396, 1395, 1397, 1374, 1375, 1386, 1394, 1396, 1395, 1397, 1374, 1375, 1386, 1394, 1395, + 1396, 1397, 1373, 1375, 1378, 1384, 1383, 1386, 1393, 1395, 1396, 1397, 1375, 1384, 1383, 1386, + 1393, 1396, 1395, 1397, 1375, 1385, 1386, 1395, 1396, 1397, 1375, 1385, 1386, 1396, 1395, 1397, + 1389, 1395, 1396, 1397, 1380, 1389, 1396, 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1396, + 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1396, 1395, 1397, 1375, 1386, 1396, 1395, 1397, + 1375, 1382, 1386, 1396, 1395, 1397, 1375, 1386, 1395, 1396, 1397, 1375, 1386, 1395, 1396, 1397, + 1375, 1386, 1391, 1396, 1395, 1397, 1375, 1386, 1391, 1396, 1395, 1397, 1375, 1386, 1392, 1395, + 1396, 1397, 1375, 1386, 1392, 1395, 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1395, 1396, + 1397, 1381, 1395, 1396, 1397, 1390, 1395, 1396, 1397, 1390, 1395, 1396, 1397, 1395, 1396, 1397, + 1395, 1396, 1397, 1395, 1396, 1397, 1396, 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1426, + 1396, 1395, 1397, 1395, 1396, 1397, 1396, 1395, 1397, 1396, 1395, 1397, 1396, 1395, 1397, 1395, + 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1427, 1395, 1396, 1397, 1395, 1396, 1397, 1395, + 1396, 1397, 1395, 1396, 1397, 1424, 1396, 1395, 1397, 1396, 1395, 1397, 1418, 1424, 1395, 1396, + 1397, 1395, 1396, 1397, 1422, 1396, 1395, 1397, 1395, 1396, 1397, 1420, 1421, 1395, 1396, 1397, + 1395, 1396, 1397, 1417, 1425, 1395, 1396, 1397, 1396, 1395, 1397, 1398, 1399, 1400, 1401, 1402, + 1404, 1405, 1406, 1407, 1409, 1410, 1411, 1412, 1419, 1425, 1396, 1395, 1397, 1403, 1408, 1414, + 1415, 1416, 1396, 1395, 1397, 1423, 1395, 1396, 1397, 1395, 1396, 1397, 1413, 1395, 1396, 1397, + 1395, 1396, 1397, 1387, 1388, 1396, 1395, 1397, 1379, 1387, 1388, 1396, 1395, 1397, 1394, 1396, + 1395, 1397, 1394, 1396, 1395, 1397, 1384, 1383, 1393, 1395, 1396, 1397, 1383, 1384, 1393, 1395, + 1396, 1397, 1385, 1396, 1395, 1397, 1385, 1395, 1396, 1397, 1389, 1395, 1396, 1397, 1380, 1389, + 1395, 1396, 1397, 1395, 1396, 1397, 1396, 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1396, + 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1382, 1396, 1395, 1397, 1395, 1396, 1397, 1396, + 1395, 1397, 1391, 1395, 1396, 1397, 1391, 1395, 1396, 1397, 1392, 1395, 1396, 1397, 1392, 1395, + 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1396, 1395, 1397, 1381, 1396, 1395, 1397, 1390, + 1396, 1395, 1397, 1390, 1396, 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, + 1395, 1396, 1397, 1396, 1395, 1397, 1395, 1396, 1397, 1426, 1396, 1395, 1397, 1396, 1395, 1397, + 1395, 1396, 1397, 1396, 1395, 1397, 1396, 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1395, + 1396, 1397, 1427, 1396, 1395, 1397, 1396, 1395, 1397, 1396, 1395, 1397, 1396, 1395, 1397, 1396, + 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1396, 1395, 1397, 1396, 1395, + 1397, 1396, 1395, 1397, 1395, 1396, 1397, 1428, 1429, 1430, 1395, 1396, 1397, 1396, 1395, 1397, + 1396, 1395, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1395, 1396, 1397, 1431, + 1395, 1396, 1397, 1435, 1434, 1437, 1436, 1441, 1433, 1432, 1443, 1447, 1440, 1446, 1449, 1448, + 1445, 1443, 1444, 1438, 1439, 1442, 1450, 1451, 1454, 1507, 1513, 1457, 1507, 1516, 1453, 1508, + 1512, 1456, 1508, 1515, 1452, 1509, 1511, 1455, 1509, 1514, 1510, 1510, 1463, 1464, 1465, 1466, + 1467, 1473, 1479, 1485, 1491, 1497, 1459, 1460, 1461, 1462, 1468, 1474, 1480, 1486, 1492, 1498, + 1469, 1475, 1481, 1487, 1493, 1499, 1458, 1471, 1477, 1483, 1489, 1495, 1501, 1472, 1478, 1484, + 1490, 1496, 1502, 1470, 1476, 1482, 1488, 1494, 1500, 1503, 1517, 1518, 1506, 1521, 1504, 1519, + 1505, 1522, 1520, 1545, 1544, 1538, 1541, 1542, 1538, 1540, 1543, 1545, 1544, 1541, 1542, 1540, + 1543, 1529, 1530, 1531, 1532, 1533, 1534, 1545, 1523, 1524, 1525, 1526, 1527, 1528, 1535, 1536, + 1537, 1539, 1544, 1538, 1541, 1542, 1538, 1540, 1543, 1529, 1530, 1531, 1532, 1533, 1534, 1545, + 1523, 1524, 1525, 1526, 1527, 1528, 1544, 1541, 1542, 1540, 1543, 1538, 1538, 1535, 1536, 1537, + 1539, 1538, 1538, 1562, 1290, 1291, 1306, 1307, 1308, 1568, 1319, 1320, 1573, 1574, 1575, 1576, + 1323, 1578, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1591, 1290, + 1291, 1306, 1307, 1308, 1568, 1320, 1573, 1574, 1575, 1576, 1323, 1578, 1326, 1327, 1330, 1331, + 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1591, 1290, 1291, 1306, 1307, 1308, 1568, 1320, + 1573, 1574, 1575, 1576, 1323, 1578, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, + 1346, 1347, 1591, 1547, 1556, 1557, 1290, 1291, 1292, 1306, 1307, 1308, 1309, 1568, 1318, 1320, + 1573, 1574, 1575, 1576, 1323, 1578, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, + 1346, 1347, 1591, 1562, 1290, 1291, 1306, 1307, 1308, 1568, 1319, 1320, 1573, 1574, 1575, 1576, + 1323, 1578, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1587, 1591, + 1290, 1291, 1306, 1307, 1308, 1568, 1320, 1573, 1574, 1575, 1576, 1323, 1578, 1326, 1327, 1330, + 1331, 1332, 1333, 1334, 1335, 1344, 1345, 1346, 1347, 1587, 1591, 1290, 1291, 1306, 1307, 1308, + 1568, 1320, 1573, 1574, 1575, 1576, 1323, 1578, 1326, 1327, 1330, 1331, 1332, 1333, 1334, 1335, + 1344, 1345, 1346, 1347, 1587, 1591, 1546, 1556, 1557, 1290, 1291, 1292, 1306, 1307, 1308, 1309, + 1568, 1318, 1320, 1573, 1574, 1575, 1576, 1323, 1578, 1326, 1327, 1330, 1331, 1332, 1333, 1334, + 1335, 1344, 1345, 1346, 1347, 1587, 1591, 1270, 1271, 1299, 1300, 1301, 1302, 1312, 1313, 1314, + 1315, 1569, 1570, 1571, 1572, 1578, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, + 1583, 1584, 1585, 1586, 1365, 1589, 1592, 1569, 1570, 1571, 1572, 1578, 1328, 1329, 1336, 1337, + 1338, 1339, 1340, 1341, 1342, 1343, 1589, 1592, 1569, 1570, 1571, 1572, 1578, 1328, 1329, 1336, + 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1589, 1592, 1554, 1555, 1297, 1298, 1310, 1311, 1316, + 1317, 1569, 1570, 1571, 1572, 1578, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, + 1579, 1580, 1581, 1582, 1589, 1592, 1299, 1300, 1301, 1302, 1312, 1313, 1314, 1315, 1569, 1570, + 1571, 1572, 1578, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1583, 1584, 1585, + 1586, 1365, 1588, 1590, 1592, 1569, 1570, 1571, 1572, 1578, 1328, 1329, 1336, 1337, 1338, 1339, + 1340, 1341, 1342, 1343, 1588, 1590, 1592, 1272, 1273, 1274, 1275, 1282, 1283, 1284, 1285, 1569, + 1570, 1571, 1572, 1578, 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1588, 1590, + 1592, 1554, 1555, 1280, 1281, 1297, 1298, 1310, 1311, 1316, 1317, 1569, 1570, 1571, 1572, 1578, + 1328, 1329, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1579, 1580, 1581, 1582, 1588, 1590, + 1592, 1566, 1567, 1568, 1321, 1577, 1324, 1578, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, + 1356, 1357, 1358, 1359, 1567, 1568, 1321, 1577, 1324, 1578, 1348, 1349, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1359, 1568, 1577, 1322, 1325, 1578, 1348, 1349, 1350, 1351, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1568, 1577, 1322, 1325, 1578, 1348, 1349, 1350, 1351, + 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1566, 1567, 1568, 1321, 1577, 1324, 1578, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1567, 1568, 1321, 1577, 1324, + 1578, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1568, 1577, 1322, + 1325, 1578, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1568, 1577, + 1322, 1325, 1578, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1578, + 1362, 1363, 1364, 1578, 1362, 1363, 1364, 1578, 1362, 1363, 1364, 1548, 1549, 1550, 1551, 1552, + 1553, 1558, 1559, 1560, 1561, 1563, 1564, 1565, 1578, 1362, 1363, 1364, 1578, 1362, 1363, 1364, + 1578, 1362, 1363, 1364, 1578, 1362, 1363, 1364, 1548, 1549, 1550, 1551, 1552, 1553, 1558, 1559, + 1560, 1561, 1563, 1564, 1565, 1578, 1362, 1363, 1364, } DECODE_INDEX_A32 := [256]lib.Decode_Index{ @@ -2389,389 +2392,393 @@ DECODE_INDEX_T32 := [128]lib.Decode_Index{ 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}, + 0x77 = { 2961, 102}, + 0x78 = { 3063, 26}, + 0x79 = { 3089, 33}, + 0x7A = { 3122, 18}, + 0x7B = { 3140, 9}, + 0x7C = { 3149, 20}, + 0x7D = { 3169, 71}, + 0x7E = { 3240, 23}, + 0x7F = { 3263, 126}, } DECODE_INDEX_T16 := [64]lib.Decode_Index{ - 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}, + 0x00 = { 3389, 1}, + 0x01 = { 3390, 1}, + 0x02 = { 3391, 1}, + 0x03 = { 3392, 1}, + 0x04 = { 3393, 1}, + 0x05 = { 3394, 1}, + 0x06 = { 3395, 2}, + 0x07 = { 3397, 2}, + 0x08 = { 3399, 1}, + 0x09 = { 3400, 1}, + 0x0A = { 3401, 1}, + 0x0B = { 3402, 1}, + 0x0C = { 3403, 1}, + 0x0D = { 3404, 1}, + 0x0E = { 3405, 1}, + 0x0F = { 3406, 1}, + 0x10 = { 3407, 16}, + 0x11 = { 3423, 7}, + 0x12 = { 3430, 1}, + 0x13 = { 3431, 1}, + 0x14 = { 3432, 2}, + 0x15 = { 3434, 2}, + 0x16 = { 3436, 2}, + 0x17 = { 3438, 2}, + 0x18 = { 3440, 1}, + 0x19 = { 3441, 1}, + 0x1A = { 3442, 1}, + 0x1B = { 3443, 1}, + 0x1C = { 3444, 1}, + 0x1D = { 3445, 1}, + 0x1E = { 3446, 1}, + 0x1F = { 3447, 1}, + 0x20 = { 3448, 1}, + 0x21 = { 3449, 1}, + 0x22 = { 3450, 1}, + 0x23 = { 3451, 1}, + 0x24 = { 3452, 1}, + 0x25 = { 3453, 1}, + 0x26 = { 3454, 1}, + 0x27 = { 3455, 1}, + 0x28 = { 3456, 1}, + 0x29 = { 3457, 1}, + 0x2A = { 3458, 1}, + 0x2B = { 3459, 1}, + 0x2C = { 3460, 7}, + 0x2D = { 3467, 2}, + 0x2E = { 3469, 4}, + 0x2F = { 3473, 8}, + 0x30 = { 3481, 1}, + 0x31 = { 3482, 1}, + 0x32 = { 3483, 1}, + 0x33 = { 3484, 1}, + 0x34 = { 3485, 1}, + 0x35 = { 3486, 1}, + 0x36 = { 3487, 1}, + 0x37 = { 3488, 3}, + 0x38 = { 3491, 1}, + 0x39 = { 3492, 1}, } DECODE_INDEX_T32_SUB := [4096]lib.Decode_Index{ - 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}, + 0xE84 = { 3493, 6}, + 0xE85 = { 3499, 2}, + 0xE86 = { 3501, 1}, + 0xE87 = { 3502, 1}, + 0xE88 = { 3503, 1}, + 0xE89 = { 3504, 1}, + 0xE8A = { 3505, 1}, + 0xE8B = { 3506, 2}, + 0xE8C = { 3508, 4}, + 0xE8D = { 3512, 6}, + 0xE8E = { 3518, 1}, + 0xE8F = { 3519, 1}, + 0xE90 = { 3520, 1}, + 0xE91 = { 3521, 1}, + 0xE92 = { 3522, 2}, + 0xE93 = { 3524, 1}, + 0xE94 = { 3525, 1}, + 0xE95 = { 3526, 1}, + 0xE96 = { 3527, 1}, + 0xE97 = { 3528, 2}, + 0xE9C = { 3530, 1}, + 0xE9D = { 3531, 1}, + 0xE9E = { 3532, 1}, + 0xE9F = { 3533, 1}, + 0xEA0 = { 3534, 2}, + 0xEA1 = { 3536, 3}, + 0xEA2 = { 3539, 1}, + 0xEA3 = { 3540, 1}, + 0xEA4 = { 3541, 7}, + 0xEA5 = { 3548, 7}, + 0xEA6 = { 3555, 1}, + 0xEA7 = { 3556, 1}, + 0xEA8 = { 3557, 1}, + 0xEA9 = { 3558, 2}, + 0xEB1 = { 3560, 1}, + 0xEB4 = { 3561, 1}, + 0xEB5 = { 3562, 1}, + 0xEB6 = { 3563, 1}, + 0xEB7 = { 3564, 1}, + 0xEBB = { 3565, 1}, + 0xEBC = { 3566, 1}, + 0xEBD = { 3567, 1}, + 0xEC0 = { 3568, 2}, + 0xEC1 = { 3570, 1}, + 0xEC2 = { 3571, 3}, + 0xEC3 = { 3574, 2}, + 0xEC4 = { 3576, 2}, + 0xEC5 = { 3578, 1}, + 0xEC6 = { 3579, 7}, + 0xEC7 = { 3586, 2}, + 0xEC8 = { 3588, 1}, + 0xEC9 = { 3589, 1}, + 0xECA = { 3590, 2}, + 0xECB = { 3592, 2}, + 0xECC = { 3594, 1}, + 0xECD = { 3595, 1}, + 0xECE = { 3596, 2}, + 0xECF = { 3598, 2}, + 0xED6 = { 3600, 4}, + 0xED8 = { 3604, 4}, + 0xED9 = { 3608, 4}, + 0xEDC = { 3612, 4}, + 0xEDD = { 3616, 4}, + 0xEE0 = { 3620, 24}, + 0xEE1 = { 3644, 23}, + 0xEE2 = { 3667, 22}, + 0xEE3 = { 3689, 29}, + 0xEE4 = { 3718, 23}, + 0xEE5 = { 3741, 22}, + 0xEE6 = { 3763, 22}, + 0xEE7 = { 3785, 29}, + 0xEE8 = { 3814, 28}, + 0xEE9 = { 3842, 12}, + 0xEEA = { 3854, 13}, + 0xEEB = { 3867, 18}, + 0xEEC = { 3885, 27}, + 0xEED = { 3912, 13}, + 0xEEE = { 3925, 22}, + 0xEEF = { 3947, 21}, + 0xEF0 = { 3968, 15}, + 0xEF1 = { 3983, 15}, + 0xEF2 = { 3998, 15}, + 0xEF3 = { 4013, 15}, + 0xEF4 = { 4028, 15}, + 0xEF5 = { 4043, 15}, + 0xEF6 = { 4058, 15}, + 0xEF7 = { 4073, 15}, + 0xEF8 = { 4088, 3}, + 0xEF9 = { 4091, 3}, + 0xEFA = { 4094, 3}, + 0xEFB = { 4097, 3}, + 0xEFC = { 4100, 3}, + 0xEFD = { 4103, 3}, + 0xEFE = { 4106, 3}, + 0xEFF = { 4109, 3}, + 0xF00 = { 4112, 10}, + 0xF01 = { 4122, 10}, + 0xF02 = { 4132, 7}, + 0xF03 = { 4139, 7}, + 0xF04 = { 4146, 10}, + 0xF05 = { 4156, 8}, + 0xF06 = { 4164, 6}, + 0xF07 = { 4170, 6}, + 0xF08 = { 4176, 4}, + 0xF09 = { 4180, 5}, + 0xF0A = { 4185, 3}, + 0xF0B = { 4188, 3}, + 0xF0C = { 4191, 3}, + 0xF0D = { 4194, 3}, + 0xF0E = { 4197, 3}, + 0xF0F = { 4200, 3}, + 0xF10 = { 4203, 5}, + 0xF11 = { 4208, 6}, + 0xF12 = { 4214, 5}, + 0xF13 = { 4219, 5}, + 0xF14 = { 4224, 6}, + 0xF15 = { 4230, 6}, + 0xF16 = { 4236, 6}, + 0xF17 = { 4242, 6}, + 0xF18 = { 4248, 3}, + 0xF19 = { 4251, 3}, + 0xF1A = { 4254, 3}, + 0xF1B = { 4257, 4}, + 0xF1C = { 4261, 4}, + 0xF1D = { 4265, 4}, + 0xF1E = { 4269, 3}, + 0xF1F = { 4272, 3}, + 0xF20 = { 4275, 3}, + 0xF21 = { 4278, 3}, + 0xF22 = { 4281, 3}, + 0xF23 = { 4284, 3}, + 0xF24 = { 4287, 4}, + 0xF25 = { 4291, 3}, + 0xF26 = { 4294, 3}, + 0xF27 = { 4297, 3}, + 0xF28 = { 4300, 3}, + 0xF29 = { 4303, 3}, + 0xF2A = { 4306, 3}, + 0xF2B = { 4309, 3}, + 0xF2C = { 4312, 4}, + 0xF2D = { 4316, 3}, + 0xF2E = { 4319, 3}, + 0xF2F = { 4322, 3}, + 0xF30 = { 4325, 4}, + 0xF31 = { 4329, 3}, + 0xF32 = { 4332, 5}, + 0xF33 = { 4337, 3}, + 0xF34 = { 4340, 4}, + 0xF35 = { 4344, 3}, + 0xF36 = { 4347, 5}, + 0xF37 = { 4352, 3}, + 0xF38 = { 4355, 5}, + 0xF39 = { 4360, 3}, + 0xF3A = { 4363, 18}, + 0xF3B = { 4381, 8}, + 0xF3C = { 4389, 4}, + 0xF3D = { 4393, 3}, + 0xF3E = { 4396, 4}, + 0xF3F = { 4400, 3}, + 0xF40 = { 4403, 5}, + 0xF41 = { 4408, 6}, + 0xF42 = { 4414, 4}, + 0xF43 = { 4418, 4}, + 0xF44 = { 4422, 6}, + 0xF45 = { 4428, 6}, + 0xF46 = { 4434, 4}, + 0xF47 = { 4438, 4}, + 0xF48 = { 4442, 4}, + 0xF49 = { 4446, 5}, + 0xF4A = { 4451, 3}, + 0xF4B = { 4454, 3}, + 0xF4C = { 4457, 3}, + 0xF4D = { 4460, 3}, + 0xF4E = { 4463, 3}, + 0xF4F = { 4466, 3}, + 0xF50 = { 4469, 3}, + 0xF51 = { 4472, 4}, + 0xF52 = { 4476, 3}, + 0xF53 = { 4479, 3}, + 0xF54 = { 4482, 4}, + 0xF55 = { 4486, 4}, + 0xF56 = { 4490, 4}, + 0xF57 = { 4494, 4}, + 0xF58 = { 4498, 3}, + 0xF59 = { 4501, 3}, + 0xF5A = { 4504, 3}, + 0xF5B = { 4507, 4}, + 0xF5C = { 4511, 4}, + 0xF5D = { 4515, 4}, + 0xF5E = { 4519, 3}, + 0xF5F = { 4522, 3}, + 0xF60 = { 4525, 3}, + 0xF61 = { 4528, 3}, + 0xF62 = { 4531, 3}, + 0xF63 = { 4534, 3}, + 0xF64 = { 4537, 4}, + 0xF65 = { 4541, 3}, + 0xF66 = { 4544, 3}, + 0xF67 = { 4547, 3}, + 0xF68 = { 4550, 3}, + 0xF69 = { 4553, 3}, + 0xF6A = { 4556, 3}, + 0xF6B = { 4559, 3}, + 0xF6C = { 4562, 4}, + 0xF6D = { 4566, 3}, + 0xF6E = { 4569, 3}, + 0xF6F = { 4572, 3}, + 0xF70 = { 4575, 3}, + 0xF71 = { 4578, 3}, + 0xF72 = { 4581, 3}, + 0xF73 = { 4584, 3}, + 0xF74 = { 4587, 3}, + 0xF75 = { 4590, 3}, + 0xF76 = { 4593, 3}, + 0xF77 = { 4596, 3}, + 0xF78 = { 4599, 6}, + 0xF79 = { 4605, 3}, + 0xF7A = { 4608, 3}, + 0xF7B = { 4611, 3}, + 0xF7C = { 4614, 3}, + 0xF7D = { 4617, 3}, + 0xF7E = { 4620, 3}, + 0xF7F = { 4623, 4}, + 0xF80 = { 4627, 1}, + 0xF81 = { 4628, 1}, + 0xF82 = { 4629, 1}, + 0xF83 = { 4630, 2}, + 0xF84 = { 4632, 1}, + 0xF85 = { 4633, 2}, + 0xF88 = { 4635, 1}, + 0xF89 = { 4636, 2}, + 0xF8A = { 4638, 1}, + 0xF8B = { 4639, 1}, + 0xF8C = { 4640, 1}, + 0xF8D = { 4641, 2}, + 0xF91 = { 4643, 1}, + 0xF93 = { 4644, 1}, + 0xF99 = { 4645, 2}, + 0xF9B = { 4647, 1}, + 0xFA0 = { 4648, 3}, + 0xFA1 = { 4651, 3}, + 0xFA2 = { 4654, 3}, + 0xFA3 = { 4657, 3}, + 0xFA4 = { 4660, 3}, + 0xFA5 = { 4663, 3}, + 0xFA6 = { 4666, 1}, + 0xFA7 = { 4667, 1}, + 0xFA8 = { 4668, 10}, + 0xFA9 = { 4678, 10}, + 0xFAA = { 4688, 6}, + 0xFAB = { 4694, 1}, + 0xFAC = { 4695, 6}, + 0xFAD = { 4701, 6}, + 0xFAE = { 4707, 6}, + 0xFB0 = { 4713, 3}, + 0xFB5 = { 4716, 1}, + 0xFB8 = { 4717, 1}, + 0xFB9 = { 4718, 1}, + 0xFBA = { 4719, 1}, + 0xFBB = { 4720, 1}, + 0xFBC = { 4721, 1}, + 0xFBE = { 4722, 1}, + 0xFC0 = { 4723, 1}, + 0xFC1 = { 4724, 1}, + 0xFC2 = { 4725, 3}, + 0xFC3 = { 4728, 3}, + 0xFC4 = { 4731, 1}, + 0xFC5 = { 4732, 1}, + 0xFC6 = { 4733, 2}, + 0xFC7 = { 4735, 2}, + 0xFC8 = { 4737, 7}, + 0xFC9 = { 4744, 11}, + 0xFCA = { 4755, 3}, + 0xFCB = { 4758, 3}, + 0xFCC = { 4761, 7}, + 0xFCD = { 4768, 7}, + 0xFCE = { 4775, 2}, + 0xFCF = { 4777, 2}, + 0xFD2 = { 4779, 1}, + 0xFD3 = { 4780, 1}, + 0xFD9 = { 4781, 4}, + 0xFDA = { 4785, 1}, + 0xFDB = { 4786, 1}, + 0xFE0 = { 4787, 28}, + 0xFE1 = { 4815, 26}, + 0xFE2 = { 4841, 26}, + 0xFE3 = { 4867, 32}, + 0xFE4 = { 4899, 29}, + 0xFE5 = { 4928, 27}, + 0xFE6 = { 4955, 27}, + 0xFE7 = { 4982, 33}, + 0xFE8 = { 5015, 32}, + 0xFE9 = { 5047, 17}, + 0xFEA = { 5064, 17}, + 0xFEB = { 5081, 29}, + 0xFEC = { 5110, 31}, + 0xFED = { 5141, 18}, + 0xFEE = { 5159, 26}, + 0xFEF = { 5185, 32}, + 0xFF0 = { 5217, 19}, + 0xFF1 = { 5236, 18}, + 0xFF2 = { 5254, 17}, + 0xFF3 = { 5271, 17}, + 0xFF4 = { 5288, 19}, + 0xFF5 = { 5307, 18}, + 0xFF6 = { 5325, 17}, + 0xFF7 = { 5342, 17}, + 0xFF8 = { 5359, 4}, + 0xFF9 = { 5363, 4}, + 0xFFA = { 5367, 4}, + 0xFFB = { 5371, 17}, + 0xFFC = { 5388, 4}, + 0xFFD = { 5392, 4}, + 0xFFE = { 5396, 4}, + 0xFFF = { 5400, 17}, } diff --git a/core/rexcode/arm32/tablegen/generated/encode_tables.odin b/core/rexcode/arm32/tablegen/generated/encode_tables.odin index d24022618..e7106940d 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 := [1671]lib.Encoding{ +ENCODE_FORMS := [1673]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, {} }, @@ -2262,6 +2262,10 @@ ENCODE_FORMS := [1671]lib.Encoding{ { .VQRDMLSDH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, // .VQRDMLSDHX { .VQRDMLSDHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, + // .VHCADD_SAT + { .VHCADD_SAT, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_HCADD}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true} }, + // .VCMLA_MVE + { .VCMLA_MVE, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_CMLA}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true} }, // .VLDRB { .VLDRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, // .VLDRH @@ -2918,27 +2922,27 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .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}, + .VHCADD_SAT = { 1651, 1}, + .VCMLA_MVE = { 1652, 1}, + .VLDRB = { 1653, 1}, + .VLDRH = { 1654, 1}, + .VLDRW = { 1655, 1}, + .VLDRD = { 1656, 1}, + .VSTRB = { 1657, 1}, + .VSTRH = { 1658, 1}, + .VSTRW = { 1659, 1}, + .VSTRD = { 1660, 1}, + .VLD20 = { 1661, 1}, + .VLD21 = { 1662, 1}, + .VLD40 = { 1663, 1}, + .VLD41 = { 1664, 1}, + .VLD42 = { 1665, 1}, + .VLD43 = { 1666, 1}, + .VST20 = { 1667, 1}, + .VST21 = { 1668, 1}, + .VST40 = { 1669, 1}, + .VST41 = { 1670, 1}, + .VST42 = { 1671, 1}, + .VST43 = { 1672, 1}, + ._COUNT = { 1673, 0}, } diff --git a/core/rexcode/arm32/tables/arm32.bucket_list.bin b/core/rexcode/arm32/tables/arm32.bucket_list.bin index eac32936cfacb4278cc399cf7a719b7618d5cbad..42760220ab0359f02624a78cb351e33eba0e1de0 100644 GIT binary patch delta 3735 zcmdlLaw%j3lZ0#eRCN^d^7B*HkHa2!P z4mM6UE;eqqZ!F(gez5#x`Ni^^WpbaSRF)*06dMC8BP$atGb;-#E2}h{44W()7b`a_ z533xTAgd6oFslfwD61H&6st6=Jev%wEUN;W9IHI50;?jc600(+3acus8ml_12CE{Q z5}Puc3Y#jM8k;(s2Ad|UCYu(kHmeS+E~^&XWC1BBcYjuGHXSxyHa#|dHUl<8HY2tm z)?n5U)=*YsHWM~eHZwMJHVZaOHcK`uHY+x3HfuH;Hd{73HhVS)HU~CGHb*umHYYac z$+M;Og`?P_*`nEE*kak@*y7m|*b>>2CO?!?WzJ#Coy;n&E!o7@%+}1-!q&pp3WjZL z?QE@V9c&$wU8Vomv$29aDb6YZ_LvOV1KO;5top1*tj4S+tfs7Htmdo^td6Wstj?@a ztT6SGQ1u$D_*A2sjYVxelF@%y{<8dI`OgB<#KS7i3bR6%RgD#kRwSJu9mIJcj5P}E zVVK$V_zZ?Ah8ayrEvg4#R^WAhJ*zV-$Qn?BWM}1I<%Fj*Sh_M`HDtA5wPdwowPv+p zwPm$qwPy`r4P*^vjbM#t#U=|9XU8c6O3R>h3repBto4|NL$s6TlyKHa9FBp=!15X_ zd%>OOgyJuVVo*LrbtR@FAu4%UHCc5gUz8VT_h;opV)L_VvFbv_1(4Vzsjv5Eg=9+N z$r#o+)_B$gXmM7;TFhDs7D;4H#t_Sb6mn1%ARf5LVvS{uXH5bXbM>rQtc8$rj5Qu4 z0OmssjR%*R5DgGEL_8O&K7}!Nlq#DMC=tm|~p{nxGXk;~Dc0JS@FbAr55{eka^~fZ$S_m6j6F~Jt#31AZ zs96yGU91yO)bz2|LnI)Idsur>q&rzBLirF?Wvu0_6|9x4Rjf6vwXAil^{kDoO{~qV zEv((F6QLGWvo^4{v9_~zK>7Vp6CgIUqVTd=b71~YX3b{JfocKQi>#&aqywrAVQBD_EDZE@oZAI*)Ze>mt@wtgBhqu|8&f$-0sC zG3y)FwX9EAU$AaqeNxZ*nsp89Q`YCK>sg<&zG8jG`iylu>kihPth-ouvmRtU&U%*h zGV4v&&8%Bkx3X?y-NSl_^#toV)+?;HSog9XWjBndtY=s+vEE?4$GVU82u=UStbbYmv2wC~X8pqYmGv9zch(=Q|5+K>7}=Q7 z^x{^}0k#2TCKDSI8%#G-JsT676u1cnYI4c2DzJeXSFlEvHmepJu2zaUiY^US^7Pb0 zT5tF*;${2ckt&4Pgu#t@SOW;3nf3PYMmorPlH88ubQ3l+ zf{ur%L2D${!#fgKgNGHO3FIU61`|GCAv^`qFUKa&rU34u=&)+Bxv;vjy0N;mda!!3 zPUey4;`3)kmYyUp#^cYbzy|8ifci36_yYc{s76kb7bD%2GJjSrXqO0`=3(Py<74Az a6JQf$6Jrx+lVFo%gY?$WRig6=>jVI$-;)FY delta 3679 zcmcZKxAdaSBhC$mmroyt0mbt3B|h<0>#Z!|_i%pwNhfSAFk4>M=fGvGEh|QSIgw2%AjLn?QoXvvGg3Xf6 zlFf?En$3pImd%dMj?JFUp3Q;Hfz6T4kHqa0|A?`QgZ&`Qs>Z6$s>Q0y zs>f=`YQ$>HYQk#DYQ}2M>cHyA>ckq!3Q;WqRZWaqn8`TQ)EokQ^E2Pit`-c{(>k5WjIV%qB;_yl804;Rh!j$ zvZK5>J1-KOk5!XZ2P)2w#3oUFJtRXCPe!xGvc|E-vu3hpv1YSE$|sOW0&5bqBtwX0 zvKAt#K=5K%<5&~HrCDY@YXMYA9BUeDI%_6t0krsv0~d`D!;slIQ2Aum9H>r+8gQWr z6~Sc3v1UT$;#gBzGofb0vDPD)$gDiLf=t#txW-J@d?axg8)6wUnF7_33ss#9da z2kQi=a)`mDtYxg_tQD-4tktYFthKCltPQMw4D5tgq@>SF=80ea5-eBFtx|wwg>sHp?tOr?-vz}$W%zBe` z59=Y;6RhW0udv=?-N?F+^$6=J)(foHSnsgzXFbY#n)M>&o@71GdX@Dy z>pj*ttZ!K#vVLH_&-#w_0qaNB_pJ5oY;0`IY%FX{Y^-d^>>sQ@S%0zqX8ptZmzACE z6YFQzFRWi#zp;L2{m1&Bm4S^BNgr;t2(w|jB*0B8P*X~pRgO)qo>iR{)_l@p)nLO_ z_nM+;qn@66^u~`V8z-9(n=sfqZfFAt)ZhcPPl$6Unh)`NupZv(GGrsikL2s(0DBYM zFeJyHAd5jQ8d&2P)|P>_i8a`;wQ69^;1E`0HZwMPHidd{0~)(xs1gDy1lR<@t#nv} z2fqVg?QxLVAg9-Z8up~R-H6Qu;(9zzgQ!7o6k#|n38m2o(FF1ldIJeVBZ@wluORwm z*ksw{z?~6oRt+|A(}@>DgjDesWDgF||Yk+T%f|L0vB% cHeNP9Hhwk{Hc>V)HgPsc&kJ28I-jsk0B1gicmMzZ diff --git a/core/rexcode/arm32/tables/arm32.encode_forms.bin b/core/rexcode/arm32/tables/arm32.encode_forms.bin index 787983a4e4ea81d174f711439e8d70622dd27149..9a76030b9f870d808d69c42fbcbf2fcb4d17fd4f 100644 GIT binary patch delta 5156 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 delta 18 ZcmaE${y=?$jxZy`WLe?$EDQ_`3;;Sq1a$xa diff --git a/core/rexcode/arm32/tables/arm32.entries.bin b/core/rexcode/arm32/tables/arm32.entries.bin index ae68d3d35b5f2b9194d1c0e538e101677751b048..30420da2c064f50ce21675fccf6a54abbd737efc 100644 GIT binary patch delta 5713 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 W+Y!X*Ir&3}9X}|586LpQ5di?-ghY`5 diff --git a/core/rexcode/arm32/tables/arm32.form_idx.bin b/core/rexcode/arm32/tables/arm32.form_idx.bin index d61387cbd98a92e711f602c27a6d570e1dfd0318..f7c700b7235230015a688315a5f8b40903d372c4 100644 GIT binary patch delta 621 zcmeB^nk2O$hLMw#fscWMfs27{aw?-aGcyC{Jj@I2qU{3p3X54Q}Y5af0ikT3%S0}BH)10$GZ1v>#`2uw4`fgnRbGR$DL zP~*U+f%Jk*gXjmD3350{KLmrE#mvA2_EtSe3Z?`^gCv<4KqN>B$Ow={3}DAVL_lm1 zW?}&81&M)F!!SrM$Vm`cm?#?q$Xg)wAZtN1$W%rKCN;2C5J8aZSQ*$ESQyygJ_Z@b vz`(TmBU>mFKPZ}+88{i37(k)SI60Ja`(`e#UyPFF{ delta 614 zcmbOv)hD$fhLMwxfs=uQfsKJ{aw?-aGbaP{D=2I2qU(*d_}z*E2IRuuPuHtjf&Jz&m*_vph391Lx%X%*M=Y3>=$9Su7drnHg9a zSQ$VhGXn%NGBAQ!3=GT+ObiSRj0_MKhz7}lZ2}W)V0|o53z-;L7&yTWU}NB5U}sjdd%VqgN>0b+xk2%?!8SQr=>nCijGn8DV7+zv7XWF0F5h{Xt&1+hS4AP0c7GJ-7u ziGX;l3?L&xUSI)R2r`9%0mKGb%M2C+Sq0GzayN(tQU&r{JxBqF0}_O=8KAyKb`(Sw z6doW^1O_<;WDF!+K&qI)7J^IynFA65VKxScGeHi9sE4qa)WFI?E(N&^#aq(vL$ diff --git a/core/rexcode/arm32/tables/arm32.idx_t16.bin b/core/rexcode/arm32/tables/arm32.idx_t16.bin index d5bf2176d0b8cdc91c028e422fb367e391be4813..2dcd45976fd2359f514d38dab90c92917dcf61f1 100644 GIT binary patch delta 190 zcmZo*YG8`DuT=4E1V= z;$>v;=4E8?;bmm-<7H&<=M`Xx=VfO|<7H$>=VfHb;ALXS;$>pU;bmgT<7Jwd z?j6R+(9Fxo(89~k(9O%l(96rhFp-yoVJ0sl!z^A#hS|J~40CuH8RqgbGR)&;WSGy( U$gqHynPD+6Bf}D2Mh08}09Zd2sQ>@~ delta 148 zcmZo*YG6{g=4E8C;bmm7vO1pqPF5Y7Mq diff --git a/core/rexcode/arm32/tables/arm32.idx_t32.bin b/core/rexcode/arm32/tables/arm32.idx_t32.bin index 1ee63a04713fd87d683d983926e6df0b44b29703..713dd574208cf47e9f0c68117bc16938cd2c8e48 100644 GIT binary patch delta 42 xcmZo*X<*rKk5MU&;XAh!gCLJ0gAtDqg9{HQgD;N=Ln4nm!wMd8hW$Ks3;@T22v`6B delta 42 xcmZo*X<*rKk5MU=;TyLUg8+{rgCUO)gEJ2&gAb1gLjsRG!*U)mhP^y>3;@Q*2u%P0 diff --git a/core/rexcode/arm32/tables/arm32.idx_t32_sub.bin b/core/rexcode/arm32/tables/arm32.idx_t32_sub.bin index e53d805305a9aa58feee86aea3d1db1ad281532b..f41c4c04b5dff9db2dceda79c0ebe116e0b84574 100644 GIT binary patch literal 16384 zcmZP=1*0J_8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8Umvs zFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0)sjPmh!SOtmb86 zSj)@Eu#T6JVLdM+!vLO@Bf~*nMutPY zObkbO85xf9GBOME@bC3;w!OIBezT{WcbX>%fFMuy+K>msLx2DaLx=z?L!G5oFf;5CU}o4az`}4?fSKW#05ii$0cM6X0?Z8O1(+Ew2{1EU6<}t#A;7|L zM}V2(z5p}BBLQZHrvfYtF9nzx-UzTVd=y}2_#(i<@I!!^;kN)Q1A`zl1G6A21BW0p z1Gk_MgRCG2gQ_44gQg%egN`5zgMlD3gRvkhgM}a)gPkA?gOeZ&gPR~5gO4B^Ly#Z~ zLzo~7LzEy3L!2NhL$V+24E#bY48lT;3?f2|45C7e3}Qk|3=%?&43a{KbS*8! z$RH!c#2_cc$RIDo$e$XFGsULA|Ph7dD@wh%Leo)9yG zp%62Ji4Ze`xezmhl@KF?wGbnNjSv@un-CX6fDju)m=GgFxDXpdtPmSRvJe~CicBG9 zFpW&)AlZ{E#K@2*#K@2@#K=$}#K=$xl`DeM#X^h>B|?l0r9#XM6++Am)k2I6HA0LG zwL(k`^+HSxjY8}U9YWj;lZBWWrU@}K%oJj0SRlmCuw00VVI|aGAiGx!F*2-ynhD|~ z$?Q88%^&-z+46VsI2uU`P}ZW+)L6VrUZ)WSA}@$go00m|?ew5W`s! rL56!Gf(-9PSQtKwurPcVVPW_!BFMla%EBNZ%EBNb%EBNaD#!o;o$|i$ delta 1413 zcmZo@U~Fh$+#q08znGVeVI?mU!)jhehBds53~PBA8P@SKGOXuiWZ1yV#IT8%g<%^n z8^a!6Muxq-j12pD85#ETGBOF&hFf-f}U}ktIz{2oUfSKWi04u{= z0cM5|0xS$)>IIk?z6-E2{1ISg_%Fc9z#_=Zz%D4nASuYfpeV?~peo4BpdrY@pd-l4 zpfAYEU?RxIU?s@HU?<4J;3UY#;33Gy;3vq!5G2UL5GKgN5GBaU5HHBgkR-^=kSfT` zkRiy-kS)l}kSEB@P$1(_N4 z2r@J57i4BQB*@HgRFIkBgdj7+X+dU&bAl`kmjsy^t_m_U+z@1DxGl)ca8Hn#;h`Wi z!xKSfhUbFJ^$f2BnHk;+GBbP-WM=p*$j0zfkeT6+ATz^%L1qRfA!Y_vA!Y^+A!Y_{ zAr=OHAw~uPAw~v4Aw~uvAtnY9Aw~vKA#hp-rCA1XAw~uXAtnYXAw~viAw~unAw~vS zBzce`c_B!iQvlNwS%hL0p(>QYA|N#gtRlqBpf1GBpe4l2pew}8U?9ZIU@XMUU?#-K zU@pYSU?IfC;3UMw;3LGw5G2IN5G=&T5GlmQ5HG|AHY9cOK|A5>3?!2?g%}yKgcupJ zg%}xfgcuoep>lapI$wy9p+Ja{p-_m4p;(BCp;U;Gp-hO8pS;C48-NFhCtAzy__6Q3yoE4U3cqJ^)z$qfcAT1)rU@D@(5Go?f zkRc+(P$eSB&@Cd!Fh@j~VZDeD!$A>2hD#!X439-v7@mu;FuWFFVR$bh$iN`V!oVWR P!oVTQ!oVXc$jATyVc*K6