From 5159094cc3dcc653fa68e79cba4ac0973e4b969f Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Sat, 29 Aug 2026 02:05:42 -0400 Subject: [PATCH] rexcode/arm32: VSUDOT has no vector form It exists only by element -- the entry for a Q-register multiplier named a word that is not an encoding. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_018UmHLRF11EoWwNWCJ7JGaA --- core/rexcode/isa/arm32/mnemonic_builders.odin | 6 +- .../isa/arm32/tablegen/encoding_table.odin | 1 - .../tablegen/generated/decode_tables.odin | 1635 ++++++++--------- .../tablegen/generated/encode_tables.odin | 319 ++-- .../isa/arm32/tables/arm32.bucket_list.bin | Bin 11034 -> 11030 bytes .../isa/arm32/tables/arm32.encode_forms.bin | Bin 39698 -> 39675 bytes .../isa/arm32/tables/arm32.encode_runs.bin | Bin 4744 -> 4744 bytes .../isa/arm32/tables/arm32.entries.bin | Bin 39698 -> 39675 bytes .../isa/arm32/tables/arm32.form_idx.bin | Bin 3452 -> 3450 bytes .../isa/arm32/tables/arm32.idx_a32.bin | Bin 1024 -> 1024 bytes .../isa/arm32/tables/arm32.idx_t16.bin | Bin 256 -> 256 bytes .../isa/arm32/tables/arm32.idx_t32.bin | Bin 512 -> 512 bytes .../isa/arm32/tables/arm32.idx_t32_sub.bin | Bin 16384 -> 16384 bytes core/rexcode/isa/arm32/tests/smoke.odin | 2 +- 14 files changed, 979 insertions(+), 984 deletions(-) diff --git a/core/rexcode/isa/arm32/mnemonic_builders.odin b/core/rexcode/isa/arm32/mnemonic_builders.odin index db1a453b2..8b46c8e4a 100644 --- a/core/rexcode/isa/arm32/mnemonic_builders.odin +++ b/core/rexcode/isa/arm32/mnemonic_builders.odin @@ -1092,9 +1092,7 @@ inst_vummla_q_q_q :: #force_inline proc "contextless" (dst: Register, s emit_vummla_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vummla_q_q_q(dst, src, src2)) } inst_vusmmla_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VUSMMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } emit_vusmmla_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vusmmla_q_q_q(dst, src, src2)) } -inst_vsudot_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } inst_vsudot_q_q_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VSUDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vsudot_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsudot_q_q_q(dst, src, src2)) } emit_vsudot_q_q_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vsudot_q_q_dlane(dst, src, src2, lane)) } inst_vusdot_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VUSDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } inst_vusdot_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VUSDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } @@ -2301,8 +2299,8 @@ inst_vummla :: inst_vummla_q_q_q emit_vummla :: emit_vummla_q_q_q inst_vusmmla :: inst_vusmmla_q_q_q emit_vusmmla :: emit_vusmmla_q_q_q -inst_vsudot :: proc{ inst_vsudot_q_q_q, inst_vsudot_q_q_dlane } -emit_vsudot :: proc{ emit_vsudot_q_q_q, emit_vsudot_q_q_dlane } +inst_vsudot :: inst_vsudot_q_q_dlane +emit_vsudot :: emit_vsudot_q_q_dlane inst_vusdot :: proc{ inst_vusdot_d_d_d, inst_vusdot_d_d_dlane } emit_vusdot :: proc{ emit_vusdot_d_d_d, emit_vusdot_d_d_dlane } inst_vqabs :: inst_vqabs_q_q diff --git a/core/rexcode/isa/arm32/tablegen/encoding_table.odin b/core/rexcode/isa/arm32/tablegen/encoding_table.odin index b32664858..30252841a 100644 --- a/core/rexcode/isa/arm32/tablegen/encoding_table.odin +++ b/core/rexcode/isa/arm32/tablegen/encoding_table.odin @@ -2899,7 +2899,6 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // vusdot.s8 d0,d1,d2 = 0xFCA1_0D02 -> base 0xFCA00D00 // vsudot.u8 q0,q1,d2[0] = 0xFE82_0D52 -> base 0xFE800D50 (lane only) .VSUDOT = { - {.VSUDOT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFCA00D50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {}}, {.VSUDOT, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, .VUSDOT = { diff --git a/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin b/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin index f9b0b7bda..a5d21e825 100644 --- a/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin +++ b/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin @@ -8,7 +8,7 @@ package rexcode_arm32_generated import lib "../.." @(rodata) -DECODE_ENTRIES := [1726]lib.Decode_Entry{ +DECODE_ENTRIES := [1725]lib.Decode_Entry{ { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, { .AND, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, @@ -203,8 +203,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VRECPS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, @@ -262,13 +262,13 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, { .SHA1P, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, @@ -283,8 +283,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, @@ -314,8 +314,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, { .VRSQRTS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .SHA1M, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, @@ -337,8 +337,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, @@ -367,70 +367,70 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800850, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E70, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800050, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800F50, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E50, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800450, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800810, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E10, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800250, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800210, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800410, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800F10, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800650, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800610, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800010, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E70, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800450, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E10, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800250, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E30, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800F50, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800850, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800810, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800410, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800050, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800210, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800F10, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800E50, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800650, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800010, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {}, {.S8,.NONE} }, - { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800330, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800370, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800770, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800730, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800130, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800530, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800570, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800970, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800930, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800170, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800730, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800770, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800530, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800330, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800370, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800930, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800110, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800950, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800310, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800550, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800150, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800750, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800350, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800510, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800910, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800710, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800030, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800070, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800230, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800430, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800750, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800310, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800350, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800550, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800910, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800150, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800510, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800B10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D70, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800630, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800870, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800670, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800470, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800830, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800430, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800270, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C70, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800070, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800670, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800230, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800030, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800D30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800C30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800A30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE}, 0xF2800630, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, @@ -505,10 +505,10 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQDMULL, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQDMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, - { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQDMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, - { .VQDMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQRDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, { .VQRDMLAH, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, @@ -521,8 +521,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, { .VACLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, @@ -571,8 +571,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VACGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, @@ -718,125 +718,125 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VQRDMLAH, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, { .VQRDMLSH, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {}, {.NONE,.NONE} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90340, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10300, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50300, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10340, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90300, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50300, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90340, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10340, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90740, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10300, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B50340, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90700, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90740, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B903C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90780, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50380, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B103C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B907C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B903C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90780, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90380, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B503C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10380, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90380, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50380, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, { .VCVT, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {}, {.F16,.F32} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20200, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60200, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0200, 0xFFBF0FD0, .NEON, .A32, {}, {.I64,.NONE} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0280, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20280, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA02C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U64,.NONE} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20200, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B202C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U16,.NONE} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B602C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA02C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U64,.NONE} }, { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60280, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0240, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0280, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B602C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20280, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60240, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20240, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0240, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00280, 0xFFBF0FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00200, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80200, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40200, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00200, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00280, 0xFFBF0FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, - { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_8,.NONE}, 0xF3B20300, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_32,.NONE}, 0xF3BA0300, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_16,.NONE}, 0xF3B60300, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_8,.NONE}, 0xF3B20300, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80400, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00400, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40400, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00440, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80440, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40440, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00440, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00480, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80480, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B804C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40480, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B804C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00480, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80480, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BA0080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B200C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B600C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B601C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B201C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA01C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .SHA1H, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, { .SHA1SU1, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, { .SHA256SU0, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, - { .VCEQ, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90500, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VCEQ, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10100, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, - { .VCEQ, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B90540, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCEQ, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B10140, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10100, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90500, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCEQ, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B90540, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10080, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCGE, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90480, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCGE, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B100C0, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCGE, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B904C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, - { .VCGE, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10080, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VCGT, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B90440, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCGT, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10000, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VCGT, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90400, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B90440, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCGT, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B10040, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90400, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B905C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCLE, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90580, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCLE, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10180, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, - { .VCLE, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B905C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCLE, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B101C0, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLT, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B90640, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, { .VCLT, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE}, 0xF3B10240, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLT, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B10200, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VCLT, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE}, 0xF3B90600, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B400C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20100, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60100, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20180, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60180, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, - { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_32,.NONE,.NONE}, 0xF3B40C00, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_32,.NONE,.NONE}, 0xF3B40C40, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, - { .VMVN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_32,.NONE,.NONE}, 0xF3B40C00, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, { .VMVN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMVN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, - { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, { .VCNT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VCNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VREV16, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VREV16, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV16, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_16,.NONE,.NONE}, 0xF3B20C40, 0xFFB30FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_16,.NONE,.NONE}, 0xF3B20C00, 0xFFB30FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, { .VSWP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, @@ -847,43 +847,43 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .AESIMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_8,.NONE,.NONE}, 0xF3B10C40, 0xFFB10FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_8,.NONE,.NONE}, 0xF3B10C00, 0xFFB10FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_1,.VM_D,.NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_2,.VM_D,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_1,.VM_D,.NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_2,.VM_D,.NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {}, {.NONE,.NONE} }, { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF400020F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE}, 0xF400060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE}, 0xF4000A0F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE}, 0xF400060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE}, 0xF400070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF400030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE}, 0xF400090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE}, 0xF400080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF400030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3X,.RN_A32,.NONE,.NONE}, 0xF400050F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE}, 0xF400040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF400000F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE}, 0xF400010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE}, 0xF420070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF420020F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE}, 0xF420070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE}, 0xF4200A0F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE}, 0xF420060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE}, 0xF420090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE}, 0xF420080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF420030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE}, 0xF420040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE}, 0xF420080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE}, 0xF420090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3X,.RN_A32,.NONE,.NONE}, 0xF420050F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, - { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE}, 0xF420010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE}, 0xF420040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE}, 0xF420000F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE}, 0xF420010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, { .STRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, { .LDRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, @@ -1090,7 +1090,6 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VLDMIA, {.GPR,.DPR_LIST,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE}, 0x0C900B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, { .VFMSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {}, {.F16,.NONE} }, { .VUSMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, - { .VSUDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D50, 0xFFB00F50, .V8, .A32, {}, {.NONE,.NONE} }, { .VUSDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, { .VFMSL, {.DPR,.SPR,.SPR,.NONE}, {.VD_D,.VN_S,.VM_S,.NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {}, {.F16,.NONE} }, { .VUSDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {}, {.S8,.NONE} }, @@ -1321,8 +1320,8 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ { .VSTRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, { .VCX1, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, - { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, { .VCX2, {.IMM_COPROC,.SPR,.SPR,.IMM}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, { .VCX3, {.IMM_COPROC,.SPR,.SPR,.SPR}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, { .VADDLV, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, @@ -1738,7 +1737,7 @@ DECODE_ENTRIES := [1726]lib.Decode_Entry{ } @(rodata) -DECODE_FORM_IDX := [1726]u16{ +DECODE_FORM_IDX := [1725]u16{ 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 2, 2, 2, 1, 2, 2, 2, 5, 4, 0, 0, 2, 1, 0, 0, 0, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, @@ -1751,30 +1750,30 @@ DECODE_FORM_IDX := [1726]u16{ 0, 2, 1, 0, 0, 5, 4, 0, 0, 0, 2, 1, 0, 0, 0, 5, 4, 0, 0, 0, 2, 1, 0, 0, 0, 5, 4, 1, 1, 1, 9, 14, 8, 10, 6, 4, 3, 3, 1, 4, 4, 3, 3, 1, 3, 7, 3, 3, - 0, 0, 3, 9, 3, 1, 4, 1, 1, 0, 0, 5, 13, 5, 9, 3, + 0, 0, 9, 3, 3, 1, 4, 1, 1, 0, 0, 5, 13, 5, 9, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 10, 9, 7, 4, - 4, 5, 5, 2, 4, 4, 13, 4, 9, 4, 4, 2, 2, 4, 11, 4, - 2, 0, 6, 3, 6, 4, 1, 1, 1, 1, 0, 1, 1, 12, 1, 8, - 1, 1, 1, 10, 1, 1, 1, 1, 1, 3, 5, 5, 5, 11, 14, 10, + 4, 5, 5, 2, 4, 4, 13, 4, 9, 4, 4, 2, 2, 11, 4, 4, + 2, 0, 3, 6, 6, 4, 1, 1, 1, 1, 0, 1, 1, 12, 1, 8, + 1, 1, 10, 1, 1, 1, 1, 1, 1, 3, 5, 5, 5, 11, 14, 10, 8, 10, 4, 5, 5, 6, 6, 3, 5, 5, 13, 5, 5, 5, 4, 4, - 5, 9, 5, 1, 4, 0, 7, 13, 7, 5, 9, 3, 2, 2, 2, 2, - 1, 2, 2, 12, 2, 2, 2, 2, 2, 8, 2, 2, 2, 0, 2, 0, + 5, 5, 9, 1, 4, 0, 7, 13, 7, 5, 9, 3, 2, 2, 2, 2, + 1, 2, 2, 12, 2, 2, 2, 2, 8, 2, 2, 2, 2, 0, 2, 0, 7, 12, 4, 7, 7, 1, 11, 5, 6, 0, 8, 3, 3, 3, 0, 10, - 3, 3, 0, 3, 0, 3, 19, 31, 11, 25, 29, 27, 15, 18, 23, 26, - 20, 13, 22, 12, 14, 28, 17, 16, 10, 24, 30, 21, 0, 0, 11, 2, - 3, 7, 0, 4, 5, 9, 8, 1, 6, 10, 0, 9, 2, 5, 11, 1, - 10, 7, 3, 4, 8, 6, 2, 12, 3, 4, 14, 6, 17, 16, 8, 11, - 9, 7, 10, 13, 5, 15, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 3, 3, 0, 3, 0, 3, 16, 31, 15, 26, 13, 30, 29, 19, 18, 14, + 22, 20, 11, 12, 28, 27, 17, 10, 25, 23, 21, 24, 0, 0, 6, 0, + 5, 9, 11, 1, 7, 4, 2, 3, 10, 8, 0, 9, 6, 7, 2, 3, + 5, 8, 1, 11, 4, 10, 17, 11, 7, 10, 6, 5, 15, 13, 3, 9, + 4, 2, 16, 14, 12, 8, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 5, 0, 0, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 1, 1, 18, 12, 11, 1, 7, 6, 1, 1, 6, 0, 2, 2, 0, 0, 2, 4, 4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 19, 13, 12, 8, 2, 7, 2, 2, 7, 3, 1, - 1, 3, 3, 1, 6, 6, 5, 5, 0, 1, 0, 3, 0, 3, 0, 3, - 7, 13, 7, 1, 9, 9, 12, 14, 6, 7, 7, 9, 9, 7, 7, 1, + 3, 1, 1, 3, 6, 6, 5, 5, 0, 1, 0, 3, 0, 3, 0, 3, + 13, 7, 7, 1, 9, 9, 12, 14, 6, 7, 7, 9, 9, 7, 7, 1, 3, 7, 9, 7, 12, 6, 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, 3, 4, 3, 3, 6, 2, 2, 0, 9, 9, 11, 10, 4, 7, + 6, 6, 4, 3, 3, 3, 6, 2, 2, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 13, 11, 1, 13, 11, 8, 3, 3, 3, 9, 1, 5, 9, 10, @@ -1783,17 +1782,17 @@ DECODE_FORM_IDX := [1726]u16{ 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 4, 4, 5, 5, 4, 4, 4, 4, 4, 20, 14, 13, 9, 4, 8, 4, 8, 4, 6, 6, 3, 5, 5, 7, 7, 5, 5, 5, 5, 5, 21, 15, 14, 5, 10, 9, 5, - 9, 5, 7, 7, 0, 7, 2, 3, 5, 4, 6, 8, 9, 7, 8, 3, - 5, 9, 6, 2, 4, 10, 0, 1, 2, 2, 0, 5, 3, 4, 1, 2, - 1, 0, 2, 1, 0, 4, 2, 3, 1, 0, 0, 1, 2, 3, 3, 2, - 1, 2, 0, 1, 5, 4, 3, 0, 4, 3, 2, 5, 1, 0, 2, 3, - 5, 1, 4, 2, 0, 3, 1, 5, 4, 4, 3, 2, 3, 2, 4, 0, - 0, 0, 12, 10, 13, 11, 14, 13, 15, 12, 15, 12, 14, 13, 16, 14, - 17, 15, 17, 15, 14, 16, 1, 3, 0, 2, 0, 1, 0, 1, 6, 7, - 0, 1, 3, 5, 2, 0, 1, 3, 0, 1, 1, 0, 5, 4, 1, 0, - 0, 0, 0, 0, 3, 2, 2, 0, 1, 3, 3, 0, 2, 1, 3, 0, - 3, 0, 3, 3, 2, 1, 0, 1, 0, 2, 1, 0, 0, 1, 2, 2, - 0, 3, 1, 2, 1, 0, 2, 0, 1, 1, 0, 0, 0, 2, 0, 2, + 9, 5, 7, 7, 0, 4, 3, 7, 5, 9, 2, 6, 8, 5, 9, 7, + 8, 4, 6, 2, 3, 10, 1, 2, 0, 3, 5, 1, 2, 4, 0, 1, + 0, 2, 4, 0, 2, 1, 1, 2, 3, 0, 3, 2, 0, 1, 1, 3, + 2, 2, 0, 1, 3, 5, 4, 1, 3, 5, 0, 2, 4, 3, 0, 2, + 4, 5, 1, 2, 1, 0, 3, 4, 5, 2, 3, 4, 3, 2, 4, 0, + 0, 0, 11, 10, 12, 13, 12, 14, 13, 15, 12, 15, 13, 14, 17, 16, + 14, 15, 17, 15, 14, 16, 2, 0, 1, 3, 0, 1, 0, 1, 7, 6, + 1, 0, 5, 3, 0, 2, 1, 3, 0, 1, 0, 1, 5, 4, 1, 0, + 0, 0, 0, 0, 3, 2, 0, 1, 3, 2, 0, 1, 2, 3, 3, 0, + 3, 0, 3, 3, 1, 2, 0, 2, 1, 0, 1, 0, 0, 1, 2, 2, + 3, 0, 1, 2, 2, 0, 1, 1, 0, 0, 1, 0, 0, 2, 0, 2, 0, 0, 6, 5, 4, 4, 5, 4, 3, 3, 4, 3, 2, 2, 7, 5, 4, 4, 6, 4, 3, 3, 5, 3, 2, 2, 4, 6, 5, 5, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, @@ -1806,51 +1805,51 @@ DECODE_FORM_IDX := [1726]u16{ 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 7, 9, 0, 0, 6, 8, 0, - 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 2, 3, 0, - 1, 3, 2, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 4, 38, 37, - 3, 2, 1, 0, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 5, 32, - 1, 0, 0, 1, 0, 0, 3, 3, 2, 2, 2, 1, 0, 1, 0, 2, - 2, 1, 0, 1, 0, 36, 1, 3, 1, 0, 0, 1, 2, 2, 0, 1, - 2, 2, 0, 1, 0, 1, 2, 2, 1, 0, 1, 0, 2, 3, 5, 3, - 2, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 2, 0, 1, 1, 0, 4, 1, 0, 31, 30, 32, - 28, 26, 25, 27, 29, 33, 22, 20, 19, 21, 23, 16, 15, 17, 13, 11, - 12, 14, 18, 24, 34, 6, 4, 3, 5, 7, 0, 1, 2, 8, 9, 1, - 0, 0, 1, 1, 0, 2, 3, 1, 0, 1, 0, 0, 1, 0, 1, 0, - 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 1, 1, 2, 2, 1, 3, 3, 1, 1, 4, 4, 4, 4, - 4, 3, 5, 4, 7, 5, 11, 10, 8, 10, 9, 8, 7, 8, 8, 8, - 8, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 1, - 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 8, 0, 0, 0, 0, 7, 33, 34, 2, - 14, 14, 2, 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, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 2, 3, 0, 1, + 3, 2, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 4, 38, 37, 3, + 2, 1, 0, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 5, 32, 1, + 0, 0, 1, 0, 0, 3, 3, 2, 2, 2, 1, 0, 1, 0, 2, 2, + 1, 0, 1, 0, 36, 0, 3, 1, 0, 0, 1, 2, 2, 0, 1, 2, + 2, 0, 1, 0, 1, 2, 2, 1, 0, 1, 0, 2, 3, 5, 3, 2, + 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, + 1, 0, 1, 0, 2, 0, 1, 1, 0, 4, 1, 0, 31, 30, 32, 28, + 26, 25, 27, 29, 33, 22, 20, 19, 21, 23, 16, 15, 17, 13, 11, 12, + 14, 18, 24, 34, 6, 4, 3, 5, 7, 0, 1, 2, 8, 9, 1, 0, + 0, 1, 1, 0, 2, 3, 1, 0, 1, 0, 0, 1, 0, 1, 0, 3, + 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 2, 2, 1, 3, 3, 1, 1, 4, 4, 4, 4, 4, + 3, 5, 4, 7, 5, 11, 10, 8, 10, 9, 8, 7, 8, 8, 8, 8, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 8, 0, 0, 0, 0, 7, 33, 34, 2, 14, + 14, 2, 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, 0, 0, 15, 15, 8, 8, 2, 10, 10, 12, 12, 8, 4, 6, - 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 3, 6, 4, 8, 9, 7, 0, 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, 5, 5, 5, 4, 1, 1, 2, 2, 2, + 0, 0, 0, 15, 15, 8, 8, 2, 10, 10, 12, 12, 8, 4, 6, 0, + 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 3, 6, 4, 8, 9, 7, 0, 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, 5, 5, 5, 4, 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, 1, 1, 3, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 2, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, - 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 11, 11, 0, 0, 0, - 10, 10, 18, 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, 2, 2, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 2, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 11, 11, 0, 0, 0, 10, + 10, 18, 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, 2, 2, 1, 1, 1, 2, } @(rodata) -DECODE_BUCKET_LIST := [5517]u16{ +DECODE_BUCKET_LIST := [5515]u16{ 0, 1, 2, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 6, 10, 7, 11, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 16, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 25, 26, 32, 33, 34, 35, 32, 36, @@ -1995,207 +1994,207 @@ DECODE_BUCKET_LIST := [5517]u16{ 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, 1046, 1047, 1048, 1061, 1062, 1049, 1050, 1061, 1062, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1049, 1050, 1063, - 1064, 1061, 1062, 1051, 1052, 1046, 1047, 1048, 1066, 1065, 1061, 1067, 1062, 1049, 1068, 1050, - 1069, 1070, 1061, 1071, 1062, 1051, 1072, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1064, 1061, 1062, 1051, 1052, 1046, 1047, 1048, 1065, 1066, 1061, 1067, 1062, 1049, 1068, 1050, + 1070, 1069, 1061, 1071, 1062, 1051, 1072, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1049, 1050, 1063, 1064, 1061, 1062, 1051, 1052, 1073, 1074, 1076, 1075, 1049, 1050, - 1073, 1074, 1078, 1077, 1051, 1052, 1079, 1080, 1081, 1082, 1083, 1084, 1073, 1074, 1086, 1085, - 1049, 1050, 1088, 1087, 1073, 1074, 1089, 1090, 1051, 1052, 1073, 1074, 1075, 1076, 1049, 1050, - 1073, 1074, 1077, 1078, 1051, 1052, 1079, 1080, 1081, 1082, 1083, 1084, 1073, 1074, 1086, 1085, - 1049, 1050, 1073, 1074, 1090, 1089, 1051, 1052, 1061, 1062, 1091, 1092, 1061, 1062, 1094, 1093, - 1096, 1095, 1061, 1062, 1097, 1098, 1061, 1062, 1100, 1099, 1061, 1062, 1091, 1092, 1061, 1062, - 1093, 1094, 1061, 1062, 1097, 1098, 1061, 1062, 1099, 1100, 1073, 1074, 1091, 1092, 1073, 1074, - 1094, 1093, 1073, 1074, 1073, 1074, 1073, 1074, 1091, 1092, 1073, 1074, 1094, 1093, 1073, 1074, - 1073, 1074, 1101, 1102, 1103, 1104, 1105, 1107, 1106, 1108, 1109, 1061, 1110, 1111, 1113, 1112, - 1062, 1114, 1115, 1116, 1117, 1118, 1107, 1106, 1119, 1061, 1121, 1120, 1122, 1123, 1062, 1124, - 1115, 1125, 1117, 1102, 1103, 1126, 1127, 1128, 1129, 1106, 1107, 1130, 1061, 1132, 1131, 1134, - 1133, 1062, 1114, 1115, 1116, 1117, 1107, 1106, 1119, 1135, 1136, 1061, 1137, 1138, 1139, 1140, - 1062, 1124, 1115, 1125, 1117, 1104, 1141, 1105, 1107, 1106, 1108, 1109, 1061, 1110, 1111, 1113, - 1112, 1062, 1114, 1115, 1116, 1117, 1107, 1106, 1119, 1061, 1121, 1120, 1122, 1123, 1062, 1124, - 1115, 1125, 1117, 1126, 1127, 1141, 1128, 1129, 1107, 1106, 1130, 1061, 1132, 1131, 1133, 1134, - 1062, 1114, 1115, 1116, 1117, 1107, 1106, 1119, 1135, 1136, 1061, 1138, 1137, 1139, 1140, 1062, - 1124, 1115, 1125, 1117, 1142, 1143, 1144, 1145, 1147, 1146, 1148, 1149, 1150, 1151, 1114, 1115, - 1116, 1117, 1119, 1152, 1153, 1154, 1155, 1156, 1157, 1124, 1115, 1125, 1117, 1158, 1159, 1160, - 1161, 1162, 1163, 1114, 1115, 1116, 1117, 1165, 1166, 1164, 1168, 1167, 1170, 1169, 1172, 1171, - 1174, 1173, 1175, 1176, 1178, 1177, 1179, 1180, 1182, 1181, 1184, 1183, 1186, 1185, 1188, 1187, - 1189, 1190, 1191, 1194, 1192, 1193, 1196, 1195, 1216, 1209, 1221, 1228, 1227, 1207, 1220, 1204, - 1208, 1219, 1203, 1200, 1214, 1201, 1212, 1199, 1218, 1230, 1217, 1223, 1206, 1198, 1222, 1224, - 1215, 1210, 1211, 1213, 1225, 1202, 1229, 1226, 1197, 1205, 1231, 1232, 1233, 1234, 1238, 1236, - 1235, 1237, 1239, 1240, 1242, 1241, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1119, 1124, 1115, - 1125, 1117, 1142, 1143, 1144, 1145, 1147, 1146, 1148, 1250, 1149, 1150, 1151, 1114, 1115, 1116, - 1117, 1119, 1152, 1153, 1154, 1155, 1156, 1157, 1124, 1115, 1125, 1117, 1251, 1252, 1158, 1159, - 1161, 1160, 1163, 1162, 1114, 1115, 1116, 1117, 1166, 1164, 1165, 1167, 1168, 1169, 1170, 1171, - 1172, 1174, 1173, 1176, 1175, 1177, 1178, 1179, 1180, 1182, 1181, 1183, 1184, 1253, 1185, 1186, - 1188, 1187, 1191, 1189, 1190, 1193, 1194, 1192, 1196, 1195, 1200, 1226, 1211, 1212, 1210, 1209, - 1207, 1206, 1204, 1201, 1202, 1203, 1205, 1208, 1213, 1199, 1198, 1197, 1227, 1223, 1224, 1225, - 1222, 1220, 1219, 1217, 1214, 1215, 1216, 1218, 1221, 1229, 1230, 1228, 1232, 1231, 1234, 1233, - 1237, 1238, 1236, 1235, 1239, 1240, 1242, 1241, 1244, 1243, 1246, 1245, 1247, 1248, 1249, 1119, - 1124, 1115, 1125, 1117, 1061, 1062, 1254, 1061, 1062, 1254, 1061, 1062, 1254, 1061, 1062, 1254, - 1061, 1062, 1254, 1061, 1062, 1254, 1061, 1062, 1254, 1061, 1062, 1254, 1254, 1254, 1254, 1254, - 1254, 1254, 1254, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, - 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, - 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, - 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, - 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, - 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, - 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, - 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, - 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, - 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, - 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1424, 1425, 1471, 1472, - 1473, 1429, 1430, 1474, 1475, 1476, 1477, 1478, 1439, 1479, 1480, 1449, 1448, 1450, 1424, 1425, - 1429, 1430, 1431, 1432, 1433, 1434, 1436, 1435, 1437, 1439, 1440, 1441, 1442, 1443, 1444, 1445, - 1446, 1447, 1449, 1448, 1450, 1481, 1482, 1483, 1424, 1425, 1429, 1430, 1484, 1439, 1479, 1480, - 1449, 1448, 1450, 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, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, - 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, - 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, - 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1594, - 1593, 1596, 1595, 1598, 1597, 1599, 1600, 1316, 1317, 1318, 1319, 1320, 1321, 1601, 1602, 1603, - 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1328, 1329, 1330, 1331, - 1332, 1333, 1616, 1617, 1618, 1338, 1339, 1340, 1619, 1347, 1348, 1349, 1350, 1351, 1352, 1354, - 1355, 1620, 1356, 1357, 1621, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, - 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1369, 1630, 1370, 1371, 1372, 1373, 1631, 1374, - 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, - 1407, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1410, 1411, 1412, 1413, 1640, 1641, 1642, - 1643, 1644, 1645, 1646, 1646, 1647, 1647, 1648, 1648, 1649, 1650, 1651, 1652, 1653, 1653, 1654, - 1654, 1655, 1655, 1656, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, - 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1680, 1681, 1682, - 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1689, 1690, 1690, 1691, 1691, 1692, 1692, 1693, 1693, - 1694, 1694, 1695, 1695, 1696, 1696, 1697, 1697, 1698, 1698, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, - 1720, 1721, 1721, 1722, 1722, 1722, 1723, 1724, 1722, 1725, 1725, 1263, 1264, 1265, 1266, 1271, - 1277, 1267, 1276, 1277, 1276, 1273, 1272, 1273, 1270, 1272, 1260, 1261, 1268, 1277, 1256, 1257, - 1258, 1259, 1262, 1276, 1277, 1276, 1275, 1274, 1269, 1275, 1274, 1277, 1276, 1277, 1255, 1276, - 1277, 1276, 1277, 1276, 1290, 1282, 1289, 1296, 1296, 1278, 1279, 1280, 1281, 1287, 1295, 1286, - 1295, 1288, 1288, 1291, 1283, 1291, 1285, 1293, 1293, 1294, 1294, 1284, 1292, 1292, 1307, 1314, - 1315, 1307, 1310, 1313, 1311, 1312, 1307, 1314, 1315, 1297, 1298, 1299, 1300, 1307, 1310, 1313, - 1311, 1312, 1314, 1315, 1310, 1313, 1311, 1312, 1314, 1315, 1310, 1313, 1311, 1312, 1297, 1298, - 1299, 1300, 1304, 1305, 1306, 1309, 1301, 1302, 1303, 1308, 1304, 1305, 1306, 1309, 1301, 1302, - 1303, 1308, 1334, 1338, 1339, 1341, 1353, 1354, 1355, 1356, 1367, 1368, 1371, 1374, 1375, 1378, - 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1418, 1334, 1338, 1339, 1342, 1353, 1354, - 1355, 1356, 1368, 1371, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, - 1418, 1338, 1339, 1341, 1353, 1354, 1355, 1356, 1368, 1371, 1374, 1375, 1378, 1379, 1380, 1381, - 1382, 1383, 1392, 1393, 1394, 1395, 1418, 1324, 1325, 1326, 1327, 1338, 1339, 1340, 1342, 1353, - 1354, 1355, 1356, 1357, 1366, 1368, 1371, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, - 1393, 1394, 1395, 1418, 1338, 1339, 1341, 1354, 1355, 1356, 1367, 1368, 1371, 1374, 1375, 1378, - 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1414, 1418, 1338, 1339, 1342, 1354, 1355, - 1356, 1368, 1371, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1414, - 1418, 1338, 1339, 1341, 1354, 1355, 1356, 1368, 1371, 1374, 1375, 1378, 1379, 1380, 1381, 1382, - 1383, 1392, 1393, 1394, 1395, 1414, 1418, 1324, 1325, 1326, 1327, 1338, 1339, 1340, 1342, 1354, - 1355, 1356, 1357, 1366, 1368, 1371, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, - 1394, 1395, 1414, 1418, 1316, 1317, 1335, 1336, 1337, 1349, 1350, 1351, 1352, 1360, 1361, 1362, - 1363, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1408, 1409, 1413, 1416, 1419, - 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1416, 1419, 1335, 1376, 1377, 1384, - 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1416, 1419, 1347, 1348, 1358, 1359, 1364, 1365, 1376, - 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1416, 1419, 1335, 1336, 1337, 1349, 1350, - 1351, 1352, 1360, 1361, 1362, 1363, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, - 1408, 1409, 1413, 1415, 1417, 1419, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, - 1415, 1417, 1419, 1318, 1319, 1320, 1321, 1330, 1331, 1332, 1333, 1335, 1376, 1377, 1384, 1385, - 1386, 1387, 1388, 1389, 1390, 1391, 1415, 1417, 1419, 1322, 1323, 1328, 1329, 1347, 1348, 1358, - 1359, 1364, 1365, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1415, 1417, 1419, - 1343, 1369, 1372, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1344, - 1369, 1372, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1345, 1370, - 1373, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1346, 1370, 1373, - 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1343, 1369, 1372, 1396, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1344, 1369, 1372, 1396, 1397, - 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1345, 1370, 1373, 1396, 1397, 1398, - 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1346, 1370, 1373, 1396, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1410, 1411, 1412, 1410, 1411, 1412, 1410, 1411, - 1412, 1410, 1411, 1412, 1410, 1411, 1412, 1410, 1411, 1412, 1410, 1411, 1412, 1410, 1411, 1412, - 1420, 1422, 1423, 1426, 1430, 1438, 1439, 1440, 1449, 1448, 1450, 1422, 1423, 1427, 1431, 1438, - 1439, 1441, 1449, 1448, 1450, 1422, 1423, 1438, 1439, 1447, 1449, 1448, 1450, 1422, 1423, 1438, - 1439, 1447, 1449, 1448, 1450, 1421, 1428, 1429, 1435, 1446, 1449, 1448, 1450, 1436, 1446, 1448, - 1449, 1450, 1424, 1437, 1448, 1449, 1450, 1425, 1437, 1449, 1448, 1450, 1430, 1439, 1442, 1448, - 1449, 1450, 1432, 1439, 1442, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1439, 1448, 1449, 1450, - 1429, 1449, 1448, 1450, 1448, 1449, 1450, 1424, 1448, 1449, 1450, 1425, 1449, 1448, 1450, 1423, - 1430, 1438, 1439, 1448, 1449, 1450, 1423, 1434, 1438, 1439, 1449, 1448, 1450, 1423, 1438, 1439, - 1449, 1448, 1450, 1423, 1438, 1439, 1449, 1448, 1450, 1429, 1444, 1448, 1449, 1450, 1444, 1449, - 1448, 1450, 1424, 1445, 1448, 1449, 1450, 1425, 1445, 1449, 1448, 1450, 1430, 1439, 1449, 1448, - 1450, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1433, 1439, 1448, 1449, 1450, 1429, 1443, - 1448, 1449, 1450, 1443, 1448, 1449, 1450, 1424, 1448, 1449, 1450, 1425, 1448, 1449, 1450, 1430, - 1439, 1448, 1449, 1450, 1439, 1448, 1449, 1450, 1439, 1448, 1449, 1450, 1439, 1449, 1448, 1450, - 1429, 1479, 1448, 1449, 1450, 1449, 1448, 1450, 1424, 1448, 1449, 1450, 1425, 1448, 1449, 1450, - 1430, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1439, 1448, 1449, 1450, 1439, 1448, 1449, - 1450, 1429, 1480, 1448, 1449, 1450, 1448, 1449, 1450, 1424, 1448, 1449, 1450, 1425, 1448, 1449, - 1450, 1430, 1477, 1439, 1448, 1449, 1450, 1439, 1449, 1448, 1450, 1471, 1477, 1439, 1448, 1449, - 1450, 1439, 1448, 1449, 1450, 1429, 1475, 1449, 1448, 1450, 1449, 1448, 1450, 1424, 1473, 1474, - 1448, 1449, 1450, 1425, 1449, 1448, 1450, 1470, 1430, 1478, 1439, 1449, 1448, 1450, 1439, 1449, - 1448, 1450, 1451, 1452, 1453, 1454, 1455, 1457, 1458, 1459, 1460, 1462, 1463, 1464, 1465, 1472, - 1478, 1439, 1449, 1448, 1450, 1456, 1461, 1467, 1468, 1469, 1439, 1448, 1449, 1450, 1429, 1476, - 1449, 1448, 1450, 1449, 1448, 1450, 1466, 1424, 1449, 1448, 1450, 1425, 1449, 1448, 1450, 1430, - 1439, 1440, 1449, 1448, 1450, 1431, 1439, 1441, 1449, 1448, 1450, 1439, 1447, 1448, 1449, 1450, - 1439, 1447, 1448, 1449, 1450, 1429, 1435, 1446, 1449, 1448, 1450, 1436, 1446, 1448, 1449, 1450, - 1424, 1437, 1448, 1449, 1450, 1425, 1437, 1449, 1448, 1450, 1430, 1439, 1442, 1448, 1449, 1450, - 1432, 1439, 1442, 1449, 1448, 1450, 1439, 1448, 1449, 1450, 1439, 1449, 1448, 1450, 1429, 1448, - 1449, 1450, 1448, 1449, 1450, 1424, 1449, 1448, 1450, 1425, 1449, 1448, 1450, 1430, 1439, 1448, - 1449, 1450, 1434, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1429, - 1444, 1449, 1448, 1450, 1444, 1449, 1448, 1450, 1424, 1445, 1449, 1448, 1450, 1425, 1445, 1449, - 1448, 1450, 1430, 1439, 1449, 1448, 1450, 1439, 1448, 1449, 1450, 1439, 1449, 1448, 1450, 1433, - 1439, 1449, 1448, 1450, 1429, 1443, 1448, 1449, 1450, 1443, 1448, 1449, 1450, 1424, 1448, 1449, - 1450, 1425, 1449, 1448, 1450, 1430, 1439, 1448, 1449, 1450, 1439, 1449, 1448, 1450, 1439, 1448, - 1449, 1450, 1439, 1448, 1449, 1450, 1429, 1479, 1449, 1448, 1450, 1448, 1449, 1450, 1424, 1448, - 1449, 1450, 1425, 1448, 1449, 1450, 1430, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1439, - 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1429, 1480, 1448, 1449, 1450, 1448, 1449, 1450, 1424, - 1449, 1448, 1450, 1425, 1448, 1449, 1450, 1430, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, - 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1429, 1448, 1449, 1450, 1449, 1448, 1450, 1424, - 1449, 1448, 1450, 1425, 1448, 1449, 1450, 1481, 1482, 1483, 1430, 1439, 1448, 1449, 1450, 1439, - 1448, 1449, 1450, 1439, 1449, 1448, 1450, 1439, 1449, 1448, 1450, 1429, 1449, 1448, 1450, 1449, - 1448, 1450, 1424, 1449, 1448, 1450, 1425, 1484, 1448, 1449, 1450, 1488, 1487, 1490, 1489, 1494, - 1486, 1485, 1496, 1500, 1493, 1499, 1502, 1501, 1498, 1496, 1497, 1491, 1492, 1495, 1503, 1504, - 1507, 1511, 1566, 1510, 1569, 1506, 1512, 1565, 1509, 1568, 1505, 1513, 1564, 1508, 1567, 1514, - 1520, 1521, 1522, 1523, 1524, 1530, 1536, 1542, 1548, 1554, 1516, 1517, 1518, 1519, 1525, 1531, - 1537, 1543, 1549, 1555, 1526, 1532, 1538, 1544, 1550, 1556, 1515, 1528, 1534, 1540, 1546, 1552, - 1558, 1529, 1535, 1541, 1547, 1553, 1559, 1527, 1533, 1539, 1545, 1551, 1557, 1560, 1570, 1571, - 1563, 1574, 1561, 1572, 1562, 1575, 1573, 1597, 1598, 1588, 1594, 1595, 1588, 1593, 1596, 1597, - 1598, 1594, 1595, 1593, 1596, 1582, 1583, 1584, 1585, 1586, 1587, 1597, 1576, 1577, 1578, 1579, - 1580, 1581, 1589, 1590, 1591, 1592, 1598, 1588, 1594, 1595, 1588, 1593, 1596, 1582, 1583, 1584, - 1585, 1586, 1587, 1597, 1576, 1577, 1578, 1579, 1580, 1581, 1598, 1594, 1595, 1593, 1596, 1588, - 1588, 1589, 1590, 1591, 1592, 1588, 1588, 1615, 1338, 1339, 1354, 1355, 1356, 1621, 1367, 1368, - 1626, 1627, 1628, 1629, 1371, 1631, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, - 1394, 1395, 1644, 1338, 1339, 1354, 1355, 1356, 1621, 1368, 1626, 1627, 1628, 1629, 1371, 1631, - 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1644, 1338, 1339, 1354, - 1355, 1356, 1621, 1368, 1626, 1627, 1628, 1629, 1371, 1631, 1374, 1375, 1378, 1379, 1380, 1381, - 1382, 1383, 1392, 1393, 1394, 1395, 1644, 1600, 1609, 1610, 1338, 1339, 1340, 1354, 1355, 1356, - 1357, 1621, 1366, 1368, 1626, 1627, 1628, 1629, 1371, 1631, 1374, 1375, 1378, 1379, 1380, 1381, - 1382, 1383, 1392, 1393, 1394, 1395, 1644, 1615, 1338, 1339, 1354, 1355, 1356, 1621, 1367, 1368, - 1626, 1627, 1628, 1629, 1371, 1631, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, - 1394, 1395, 1640, 1644, 1338, 1339, 1354, 1355, 1356, 1621, 1368, 1626, 1627, 1628, 1629, 1371, - 1631, 1374, 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1640, 1644, 1338, - 1339, 1354, 1355, 1356, 1621, 1368, 1626, 1627, 1628, 1629, 1371, 1631, 1374, 1375, 1378, 1379, - 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1640, 1644, 1599, 1609, 1610, 1338, 1339, 1340, - 1354, 1355, 1356, 1357, 1621, 1366, 1368, 1626, 1627, 1628, 1629, 1371, 1631, 1374, 1375, 1378, - 1379, 1380, 1381, 1382, 1383, 1392, 1393, 1394, 1395, 1640, 1644, 1316, 1317, 1349, 1350, 1351, - 1352, 1360, 1361, 1362, 1363, 1622, 1623, 1624, 1625, 1631, 1376, 1377, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1636, 1637, 1638, 1639, 1413, 1642, 1645, 1622, 1623, 1624, 1625, 1631, - 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1642, 1645, 1622, 1623, 1624, 1625, - 1631, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1642, 1645, 1607, 1608, 1347, - 1348, 1358, 1359, 1364, 1365, 1622, 1623, 1624, 1625, 1631, 1376, 1377, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1632, 1633, 1634, 1635, 1642, 1645, 1349, 1350, 1351, 1352, 1360, 1361, - 1362, 1363, 1622, 1623, 1624, 1625, 1631, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1636, 1637, 1638, 1639, 1413, 1641, 1643, 1645, 1622, 1623, 1624, 1625, 1631, 1376, 1377, - 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1641, 1643, 1645, 1318, 1319, 1320, 1321, 1330, - 1331, 1332, 1333, 1622, 1623, 1624, 1625, 1631, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, - 1390, 1391, 1641, 1643, 1645, 1607, 1608, 1328, 1329, 1347, 1348, 1358, 1359, 1364, 1365, 1622, - 1623, 1624, 1625, 1631, 1376, 1377, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1632, 1633, - 1634, 1635, 1641, 1643, 1645, 1619, 1620, 1621, 1369, 1630, 1372, 1631, 1396, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1620, 1621, 1369, 1630, 1372, 1631, 1396, 1397, - 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1621, 1630, 1370, 1373, 1631, 1396, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1621, 1370, 1630, 1373, 1631, - 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1619, 1620, 1621, 1369, - 1630, 1372, 1631, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1620, - 1621, 1369, 1630, 1372, 1631, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, - 1407, 1621, 1630, 1370, 1373, 1631, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1621, 1630, 1370, 1373, 1631, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, - 1405, 1406, 1407, 1631, 1410, 1411, 1412, 1631, 1410, 1411, 1412, 1631, 1410, 1411, 1412, 1601, - 1602, 1603, 1604, 1605, 1606, 1611, 1612, 1613, 1614, 1616, 1617, 1618, 1631, 1410, 1411, 1412, - 1631, 1410, 1411, 1412, 1631, 1410, 1411, 1412, 1631, 1410, 1411, 1412, 1601, 1602, 1603, 1604, - 1605, 1606, 1611, 1612, 1613, 1614, 1616, 1617, 1618, 1631, 1410, 1411, 1412, + 1073, 1074, 1078, 1077, 1051, 1052, 1079, 1080, 1081, 1082, 1083, 1073, 1074, 1085, 1084, 1049, + 1050, 1087, 1086, 1073, 1074, 1089, 1088, 1051, 1052, 1073, 1074, 1076, 1075, 1049, 1050, 1073, + 1074, 1078, 1077, 1051, 1052, 1079, 1080, 1081, 1082, 1083, 1073, 1074, 1085, 1084, 1049, 1050, + 1073, 1074, 1089, 1088, 1051, 1052, 1061, 1062, 1090, 1091, 1061, 1062, 1093, 1092, 1095, 1094, + 1061, 1062, 1096, 1097, 1061, 1062, 1098, 1099, 1061, 1062, 1091, 1090, 1061, 1062, 1092, 1093, + 1061, 1062, 1096, 1097, 1061, 1062, 1098, 1099, 1073, 1074, 1091, 1090, 1073, 1074, 1092, 1093, + 1073, 1074, 1073, 1074, 1073, 1074, 1090, 1091, 1073, 1074, 1093, 1092, 1073, 1074, 1073, 1074, + 1100, 1101, 1102, 1103, 1104, 1106, 1105, 1107, 1108, 1061, 1110, 1109, 1111, 1112, 1062, 1113, + 1114, 1115, 1116, 1117, 1106, 1105, 1118, 1061, 1119, 1120, 1121, 1122, 1062, 1123, 1114, 1124, + 1116, 1101, 1102, 1125, 1126, 1127, 1128, 1106, 1105, 1129, 1061, 1131, 1130, 1133, 1132, 1062, + 1113, 1114, 1115, 1116, 1105, 1106, 1118, 1134, 1135, 1061, 1137, 1136, 1139, 1138, 1062, 1123, + 1114, 1124, 1116, 1103, 1140, 1104, 1106, 1105, 1107, 1108, 1061, 1110, 1109, 1112, 1111, 1062, + 1113, 1114, 1115, 1116, 1106, 1105, 1118, 1061, 1119, 1120, 1121, 1122, 1062, 1123, 1114, 1124, + 1116, 1125, 1126, 1140, 1127, 1128, 1105, 1106, 1129, 1061, 1130, 1131, 1133, 1132, 1062, 1113, + 1114, 1115, 1116, 1106, 1105, 1118, 1134, 1135, 1061, 1137, 1136, 1139, 1138, 1062, 1123, 1114, + 1124, 1116, 1141, 1142, 1143, 1144, 1146, 1145, 1147, 1148, 1149, 1150, 1113, 1114, 1115, 1116, + 1118, 1151, 1152, 1153, 1154, 1156, 1155, 1123, 1114, 1124, 1116, 1157, 1158, 1159, 1160, 1162, + 1161, 1113, 1114, 1115, 1116, 1165, 1163, 1164, 1167, 1166, 1168, 1169, 1170, 1171, 1173, 1172, + 1175, 1174, 1177, 1176, 1179, 1178, 1181, 1180, 1183, 1182, 1185, 1184, 1187, 1186, 1190, 1189, + 1188, 1191, 1193, 1192, 1194, 1195, 1216, 1223, 1205, 1215, 1219, 1228, 1207, 1203, 1201, 1210, + 1221, 1204, 1206, 1208, 1198, 1225, 1199, 1212, 1229, 1222, 1214, 1217, 1218, 1220, 1213, 1209, + 1211, 1202, 1224, 1227, 1200, 1197, 1196, 1226, 1230, 1231, 1233, 1232, 1237, 1236, 1235, 1234, + 1239, 1238, 1240, 1241, 1242, 1243, 1245, 1244, 1246, 1248, 1247, 1118, 1123, 1114, 1124, 1116, + 1141, 1142, 1143, 1144, 1146, 1145, 1147, 1249, 1148, 1150, 1149, 1113, 1114, 1115, 1116, 1118, + 1151, 1152, 1153, 1154, 1156, 1155, 1123, 1114, 1124, 1116, 1250, 1251, 1157, 1158, 1160, 1159, + 1161, 1162, 1113, 1114, 1115, 1116, 1163, 1164, 1165, 1166, 1167, 1169, 1168, 1171, 1170, 1172, + 1173, 1174, 1175, 1177, 1176, 1178, 1179, 1180, 1181, 1183, 1182, 1252, 1185, 1184, 1186, 1187, + 1188, 1189, 1190, 1193, 1191, 1192, 1194, 1195, 1200, 1226, 1211, 1212, 1210, 1209, 1207, 1206, + 1204, 1201, 1202, 1203, 1205, 1208, 1213, 1199, 1198, 1196, 1197, 1220, 1219, 1223, 1224, 1225, + 1222, 1217, 1214, 1215, 1216, 1218, 1221, 1228, 1227, 1229, 1230, 1231, 1233, 1232, 1236, 1235, + 1237, 1234, 1239, 1238, 1240, 1241, 1242, 1243, 1245, 1244, 1246, 1247, 1248, 1118, 1123, 1114, + 1124, 1116, 1061, 1062, 1253, 1061, 1062, 1253, 1061, 1062, 1253, 1061, 1062, 1253, 1061, 1062, + 1253, 1061, 1062, 1253, 1061, 1062, 1253, 1061, 1062, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, + 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, + 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, + 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, + 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, + 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, + 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, + 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, + 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, + 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1423, 1424, 1470, 1471, 1472, 1428, + 1429, 1473, 1474, 1475, 1476, 1477, 1438, 1478, 1479, 1448, 1447, 1449, 1423, 1424, 1428, 1429, + 1430, 1431, 1432, 1433, 1435, 1434, 1436, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, + 1448, 1447, 1449, 1480, 1481, 1482, 1423, 1424, 1428, 1429, 1483, 1438, 1478, 1479, 1448, 1447, + 1449, 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, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, + 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, + 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1593, 1592, 1595, + 1594, 1597, 1596, 1598, 1599, 1315, 1316, 1317, 1318, 1319, 1320, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1327, 1328, 1329, 1330, 1331, 1332, + 1615, 1616, 1617, 1337, 1338, 1339, 1618, 1346, 1347, 1348, 1349, 1350, 1351, 1353, 1354, 1619, + 1355, 1356, 1620, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1621, 1622, + 1623, 1624, 1625, 1626, 1627, 1628, 1368, 1629, 1369, 1370, 1371, 1372, 1630, 1373, 1374, 1375, + 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, + 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1631, + 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1409, 1410, 1411, 1412, 1639, 1640, 1641, 1642, 1643, + 1644, 1645, 1645, 1646, 1646, 1647, 1647, 1648, 1649, 1650, 1651, 1652, 1652, 1653, 1653, 1654, + 1654, 1655, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, + 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1679, 1680, 1681, 1682, 1683, + 1684, 1685, 1686, 1687, 1688, 1688, 1689, 1689, 1690, 1690, 1691, 1691, 1692, 1692, 1693, 1693, + 1694, 1694, 1695, 1695, 1696, 1696, 1697, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, + 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1719, 1720, + 1720, 1721, 1721, 1721, 1722, 1723, 1721, 1724, 1724, 1262, 1263, 1264, 1265, 1270, 1276, 1266, + 1275, 1276, 1275, 1272, 1271, 1272, 1269, 1271, 1259, 1260, 1267, 1276, 1255, 1256, 1257, 1258, + 1261, 1275, 1276, 1275, 1274, 1273, 1268, 1274, 1273, 1276, 1275, 1276, 1254, 1275, 1276, 1275, + 1276, 1275, 1289, 1281, 1288, 1295, 1295, 1277, 1278, 1279, 1280, 1286, 1294, 1285, 1294, 1287, + 1287, 1290, 1282, 1290, 1284, 1292, 1292, 1293, 1293, 1283, 1291, 1291, 1306, 1313, 1314, 1306, + 1309, 1311, 1310, 1312, 1306, 1313, 1314, 1296, 1297, 1298, 1299, 1306, 1309, 1311, 1310, 1312, + 1313, 1314, 1309, 1311, 1310, 1312, 1313, 1314, 1309, 1311, 1310, 1312, 1296, 1297, 1298, 1299, + 1303, 1304, 1305, 1308, 1300, 1301, 1302, 1307, 1303, 1304, 1305, 1308, 1300, 1301, 1302, 1307, + 1333, 1337, 1338, 1340, 1352, 1353, 1354, 1355, 1366, 1367, 1370, 1373, 1374, 1377, 1378, 1379, + 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1417, 1333, 1337, 1338, 1341, 1352, 1353, 1354, 1355, + 1367, 1370, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1417, 1337, + 1338, 1340, 1352, 1353, 1354, 1355, 1367, 1370, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, + 1391, 1392, 1393, 1394, 1417, 1323, 1324, 1325, 1326, 1337, 1338, 1339, 1341, 1352, 1353, 1354, + 1355, 1356, 1365, 1367, 1370, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, + 1394, 1417, 1337, 1338, 1340, 1353, 1354, 1355, 1366, 1367, 1370, 1373, 1374, 1377, 1378, 1379, + 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1413, 1417, 1337, 1338, 1341, 1353, 1354, 1355, 1367, + 1370, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1413, 1417, 1337, + 1338, 1340, 1353, 1354, 1355, 1367, 1370, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, + 1392, 1393, 1394, 1413, 1417, 1323, 1324, 1325, 1326, 1337, 1338, 1339, 1341, 1353, 1354, 1355, + 1356, 1365, 1367, 1370, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, + 1413, 1417, 1315, 1316, 1334, 1335, 1336, 1348, 1349, 1350, 1351, 1359, 1360, 1361, 1362, 1375, + 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1407, 1408, 1412, 1415, 1418, 1375, 1376, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1415, 1418, 1334, 1375, 1376, 1383, 1384, 1385, + 1386, 1387, 1388, 1389, 1390, 1415, 1418, 1346, 1347, 1357, 1358, 1363, 1364, 1375, 1376, 1383, + 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1415, 1418, 1334, 1335, 1336, 1348, 1349, 1350, 1351, + 1359, 1360, 1361, 1362, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1407, 1408, + 1412, 1414, 1416, 1418, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1414, 1416, + 1418, 1317, 1318, 1319, 1320, 1329, 1330, 1331, 1332, 1334, 1375, 1376, 1383, 1384, 1385, 1386, + 1387, 1388, 1389, 1390, 1414, 1416, 1418, 1321, 1322, 1327, 1328, 1346, 1347, 1357, 1358, 1363, + 1364, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1414, 1416, 1418, 1342, 1368, + 1371, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1343, 1368, 1371, + 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1344, 1369, 1372, 1395, + 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1345, 1369, 1372, 1395, 1396, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1342, 1368, 1371, 1395, 1396, 1397, + 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1343, 1368, 1371, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1344, 1369, 1372, 1395, 1396, 1397, 1398, 1399, + 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1345, 1369, 1372, 1395, 1396, 1397, 1398, 1399, 1400, + 1401, 1402, 1403, 1404, 1405, 1406, 1409, 1410, 1411, 1409, 1410, 1411, 1409, 1410, 1411, 1409, + 1410, 1411, 1409, 1410, 1411, 1409, 1410, 1411, 1409, 1410, 1411, 1409, 1410, 1411, 1419, 1421, + 1422, 1425, 1429, 1437, 1438, 1439, 1448, 1447, 1449, 1421, 1422, 1426, 1430, 1437, 1438, 1440, + 1448, 1447, 1449, 1421, 1422, 1437, 1438, 1446, 1448, 1447, 1449, 1421, 1422, 1437, 1438, 1446, + 1448, 1447, 1449, 1420, 1427, 1428, 1434, 1445, 1448, 1447, 1449, 1435, 1445, 1447, 1448, 1449, + 1423, 1436, 1447, 1448, 1449, 1424, 1436, 1448, 1447, 1449, 1429, 1438, 1441, 1447, 1448, 1449, + 1431, 1438, 1441, 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1438, 1447, 1448, 1449, 1428, 1448, + 1447, 1449, 1447, 1448, 1449, 1423, 1447, 1448, 1449, 1424, 1448, 1447, 1449, 1422, 1429, 1437, + 1438, 1447, 1448, 1449, 1422, 1433, 1437, 1438, 1448, 1447, 1449, 1422, 1437, 1438, 1448, 1447, + 1449, 1422, 1437, 1438, 1448, 1447, 1449, 1428, 1443, 1447, 1448, 1449, 1443, 1448, 1447, 1449, + 1423, 1444, 1447, 1448, 1449, 1424, 1444, 1448, 1447, 1449, 1429, 1438, 1448, 1447, 1449, 1438, + 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1432, 1438, 1447, 1448, 1449, 1428, 1442, 1447, 1448, + 1449, 1442, 1447, 1448, 1449, 1423, 1447, 1448, 1449, 1424, 1447, 1448, 1449, 1429, 1438, 1447, + 1448, 1449, 1438, 1447, 1448, 1449, 1438, 1447, 1448, 1449, 1438, 1448, 1447, 1449, 1428, 1478, + 1447, 1448, 1449, 1448, 1447, 1449, 1423, 1447, 1448, 1449, 1424, 1447, 1448, 1449, 1429, 1438, + 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1438, 1447, 1448, 1449, 1438, 1447, 1448, 1449, 1428, + 1479, 1447, 1448, 1449, 1447, 1448, 1449, 1423, 1447, 1448, 1449, 1424, 1447, 1448, 1449, 1429, + 1476, 1438, 1447, 1448, 1449, 1438, 1448, 1447, 1449, 1470, 1476, 1438, 1447, 1448, 1449, 1438, + 1447, 1448, 1449, 1428, 1474, 1448, 1447, 1449, 1448, 1447, 1449, 1423, 1472, 1473, 1447, 1448, + 1449, 1424, 1448, 1447, 1449, 1469, 1429, 1477, 1438, 1448, 1447, 1449, 1438, 1448, 1447, 1449, + 1450, 1451, 1452, 1453, 1454, 1456, 1457, 1458, 1459, 1461, 1462, 1463, 1464, 1471, 1477, 1438, + 1448, 1447, 1449, 1455, 1460, 1466, 1467, 1468, 1438, 1447, 1448, 1449, 1428, 1475, 1448, 1447, + 1449, 1448, 1447, 1449, 1465, 1423, 1448, 1447, 1449, 1424, 1448, 1447, 1449, 1429, 1438, 1439, + 1448, 1447, 1449, 1430, 1438, 1440, 1448, 1447, 1449, 1438, 1446, 1447, 1448, 1449, 1438, 1446, + 1447, 1448, 1449, 1428, 1434, 1445, 1448, 1447, 1449, 1435, 1445, 1447, 1448, 1449, 1423, 1436, + 1447, 1448, 1449, 1424, 1436, 1448, 1447, 1449, 1429, 1438, 1441, 1447, 1448, 1449, 1431, 1438, + 1441, 1448, 1447, 1449, 1438, 1447, 1448, 1449, 1438, 1448, 1447, 1449, 1428, 1447, 1448, 1449, + 1447, 1448, 1449, 1423, 1448, 1447, 1449, 1424, 1448, 1447, 1449, 1429, 1438, 1447, 1448, 1449, + 1433, 1438, 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1428, 1443, 1448, + 1447, 1449, 1443, 1448, 1447, 1449, 1423, 1444, 1448, 1447, 1449, 1424, 1444, 1448, 1447, 1449, + 1429, 1438, 1448, 1447, 1449, 1438, 1447, 1448, 1449, 1438, 1448, 1447, 1449, 1432, 1438, 1448, + 1447, 1449, 1428, 1442, 1447, 1448, 1449, 1442, 1447, 1448, 1449, 1423, 1447, 1448, 1449, 1424, + 1448, 1447, 1449, 1429, 1438, 1447, 1448, 1449, 1438, 1448, 1447, 1449, 1438, 1447, 1448, 1449, + 1438, 1447, 1448, 1449, 1428, 1478, 1448, 1447, 1449, 1447, 1448, 1449, 1423, 1447, 1448, 1449, + 1424, 1447, 1448, 1449, 1429, 1438, 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1438, 1448, 1447, + 1449, 1438, 1448, 1447, 1449, 1428, 1479, 1447, 1448, 1449, 1447, 1448, 1449, 1423, 1448, 1447, + 1449, 1424, 1447, 1448, 1449, 1429, 1438, 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1438, 1448, + 1447, 1449, 1438, 1448, 1447, 1449, 1428, 1447, 1448, 1449, 1448, 1447, 1449, 1423, 1448, 1447, + 1449, 1424, 1447, 1448, 1449, 1480, 1481, 1482, 1429, 1438, 1447, 1448, 1449, 1438, 1447, 1448, + 1449, 1438, 1448, 1447, 1449, 1438, 1448, 1447, 1449, 1428, 1448, 1447, 1449, 1448, 1447, 1449, + 1423, 1448, 1447, 1449, 1424, 1483, 1447, 1448, 1449, 1487, 1486, 1489, 1488, 1493, 1485, 1484, + 1495, 1499, 1492, 1498, 1501, 1500, 1497, 1495, 1496, 1490, 1491, 1494, 1502, 1503, 1506, 1510, + 1565, 1509, 1568, 1505, 1511, 1564, 1508, 1567, 1504, 1512, 1563, 1507, 1566, 1513, 1519, 1520, + 1521, 1522, 1523, 1529, 1535, 1541, 1547, 1553, 1515, 1516, 1517, 1518, 1524, 1530, 1536, 1542, + 1548, 1554, 1525, 1531, 1537, 1543, 1549, 1555, 1514, 1527, 1533, 1539, 1545, 1551, 1557, 1528, + 1534, 1540, 1546, 1552, 1558, 1526, 1532, 1538, 1544, 1550, 1556, 1559, 1569, 1570, 1562, 1573, + 1560, 1571, 1561, 1574, 1572, 1596, 1597, 1587, 1593, 1594, 1587, 1592, 1595, 1596, 1597, 1593, + 1594, 1592, 1595, 1581, 1582, 1583, 1584, 1585, 1586, 1596, 1575, 1576, 1577, 1578, 1579, 1580, + 1588, 1589, 1590, 1591, 1597, 1587, 1593, 1594, 1587, 1592, 1595, 1581, 1582, 1583, 1584, 1585, + 1586, 1596, 1575, 1576, 1577, 1578, 1579, 1580, 1597, 1593, 1594, 1592, 1595, 1587, 1587, 1588, + 1589, 1590, 1591, 1587, 1587, 1614, 1337, 1338, 1353, 1354, 1355, 1620, 1366, 1367, 1625, 1626, + 1627, 1628, 1370, 1630, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, + 1643, 1337, 1338, 1353, 1354, 1355, 1620, 1367, 1625, 1626, 1627, 1628, 1370, 1630, 1373, 1374, + 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1643, 1337, 1338, 1353, 1354, 1355, + 1620, 1367, 1625, 1626, 1627, 1628, 1370, 1630, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, + 1391, 1392, 1393, 1394, 1643, 1599, 1608, 1609, 1337, 1338, 1339, 1353, 1354, 1355, 1356, 1620, + 1365, 1367, 1625, 1626, 1627, 1628, 1370, 1630, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, + 1391, 1392, 1393, 1394, 1643, 1614, 1337, 1338, 1353, 1354, 1355, 1620, 1366, 1367, 1625, 1626, + 1627, 1628, 1370, 1630, 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, + 1639, 1643, 1337, 1338, 1353, 1354, 1355, 1620, 1367, 1625, 1626, 1627, 1628, 1370, 1630, 1373, + 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1639, 1643, 1337, 1338, 1353, + 1354, 1355, 1620, 1367, 1625, 1626, 1627, 1628, 1370, 1630, 1373, 1374, 1377, 1378, 1379, 1380, + 1381, 1382, 1391, 1392, 1393, 1394, 1639, 1643, 1598, 1608, 1609, 1337, 1338, 1339, 1353, 1354, + 1355, 1356, 1620, 1365, 1367, 1625, 1626, 1627, 1628, 1370, 1630, 1373, 1374, 1377, 1378, 1379, + 1380, 1381, 1382, 1391, 1392, 1393, 1394, 1639, 1643, 1315, 1316, 1348, 1349, 1350, 1351, 1359, + 1360, 1361, 1362, 1621, 1622, 1623, 1624, 1630, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, + 1389, 1390, 1635, 1636, 1637, 1638, 1412, 1641, 1644, 1621, 1622, 1623, 1624, 1630, 1375, 1376, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1641, 1644, 1621, 1622, 1623, 1624, 1630, 1375, + 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1641, 1644, 1606, 1607, 1346, 1347, 1357, + 1358, 1363, 1364, 1621, 1622, 1623, 1624, 1630, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, + 1389, 1390, 1631, 1632, 1633, 1634, 1641, 1644, 1348, 1349, 1350, 1351, 1359, 1360, 1361, 1362, + 1621, 1622, 1623, 1624, 1630, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1635, + 1636, 1637, 1638, 1412, 1640, 1642, 1644, 1621, 1622, 1623, 1624, 1630, 1375, 1376, 1383, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1640, 1642, 1644, 1317, 1318, 1319, 1320, 1329, 1330, 1331, + 1332, 1621, 1622, 1623, 1624, 1630, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, + 1640, 1642, 1644, 1606, 1607, 1327, 1328, 1346, 1347, 1357, 1358, 1363, 1364, 1621, 1622, 1623, + 1624, 1630, 1375, 1376, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1631, 1632, 1633, 1634, + 1640, 1642, 1644, 1618, 1619, 1620, 1368, 1629, 1371, 1630, 1395, 1396, 1397, 1398, 1399, 1400, + 1401, 1402, 1403, 1404, 1405, 1406, 1619, 1620, 1368, 1629, 1371, 1630, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1620, 1629, 1369, 1372, 1630, 1395, 1396, 1397, + 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1620, 1369, 1629, 1372, 1630, 1395, 1396, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1618, 1619, 1620, 1368, 1629, 1371, + 1630, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1619, 1620, 1368, + 1629, 1371, 1630, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1620, + 1629, 1369, 1372, 1630, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, + 1620, 1629, 1369, 1372, 1630, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, + 1406, 1630, 1409, 1410, 1411, 1630, 1409, 1410, 1411, 1630, 1409, 1410, 1411, 1600, 1601, 1602, + 1603, 1604, 1605, 1610, 1611, 1612, 1613, 1615, 1616, 1617, 1630, 1409, 1410, 1411, 1630, 1409, + 1410, 1411, 1630, 1409, 1410, 1411, 1630, 1409, 1410, 1411, 1600, 1601, 1602, 1603, 1604, 1605, + 1610, 1611, 1612, 1613, 1615, 1616, 1617, 1630, 1409, 1410, 1411, } DECODE_INDEX_A32 := [256]lib.Decode_Index{ @@ -2386,452 +2385,452 @@ DECODE_INDEX_A32 := [256]lib.Decode_Index{ 0xC7 = { 2340, 6}, 0xC8 = { 2346, 6}, 0xC9 = { 2352, 6}, - 0xCA = { 2358, 12}, - 0xCB = { 2370, 8}, - 0xCC = { 2378, 6}, - 0xCD = { 2384, 6}, - 0xCE = { 2390, 12}, - 0xCF = { 2402, 6}, - 0xD0 = { 2408, 4}, - 0xD1 = { 2412, 4}, - 0xD2 = { 2416, 6}, - 0xD3 = { 2422, 4}, - 0xD4 = { 2426, 4}, - 0xD5 = { 2430, 4}, - 0xD6 = { 2434, 4}, - 0xD7 = { 2438, 4}, - 0xD8 = { 2442, 4}, - 0xD9 = { 2446, 4}, - 0xDA = { 2450, 2}, - 0xDB = { 2452, 2}, - 0xDC = { 2454, 4}, - 0xDD = { 2458, 4}, - 0xDE = { 2462, 2}, - 0xDF = { 2464, 2}, - 0xE0 = { 2466, 19}, - 0xE1 = { 2485, 14}, - 0xE2 = { 2499, 19}, - 0xE3 = { 2518, 15}, - 0xE4 = { 2533, 17}, - 0xE5 = { 2550, 13}, - 0xE6 = { 2563, 18}, - 0xE7 = { 2581, 15}, - 0xE8 = { 2596, 14}, - 0xE9 = { 2610, 11}, - 0xEA = { 2621, 10}, - 0xEB = { 2631, 91}, - 0xEC = { 2722, 15}, - 0xED = { 2737, 11}, - 0xEE = { 2748, 12}, - 0xEF = { 2760, 92}, - 0xF0 = { 2852, 3}, - 0xF1 = { 2855, 3}, - 0xF2 = { 2858, 3}, - 0xF3 = { 2861, 3}, - 0xF4 = { 2864, 3}, - 0xF5 = { 2867, 3}, - 0xF6 = { 2870, 3}, - 0xF7 = { 2873, 3}, - 0xF8 = { 2876, 1}, - 0xF9 = { 2877, 1}, - 0xFA = { 2878, 1}, - 0xFB = { 2879, 1}, - 0xFC = { 2880, 1}, - 0xFD = { 2881, 1}, - 0xFE = { 2882, 1}, - 0xFF = { 2883, 1}, + 0xCA = { 2358, 11}, + 0xCB = { 2369, 8}, + 0xCC = { 2377, 6}, + 0xCD = { 2383, 6}, + 0xCE = { 2389, 11}, + 0xCF = { 2400, 6}, + 0xD0 = { 2406, 4}, + 0xD1 = { 2410, 4}, + 0xD2 = { 2414, 6}, + 0xD3 = { 2420, 4}, + 0xD4 = { 2424, 4}, + 0xD5 = { 2428, 4}, + 0xD6 = { 2432, 4}, + 0xD7 = { 2436, 4}, + 0xD8 = { 2440, 4}, + 0xD9 = { 2444, 4}, + 0xDA = { 2448, 2}, + 0xDB = { 2450, 2}, + 0xDC = { 2452, 4}, + 0xDD = { 2456, 4}, + 0xDE = { 2460, 2}, + 0xDF = { 2462, 2}, + 0xE0 = { 2464, 19}, + 0xE1 = { 2483, 14}, + 0xE2 = { 2497, 19}, + 0xE3 = { 2516, 15}, + 0xE4 = { 2531, 17}, + 0xE5 = { 2548, 13}, + 0xE6 = { 2561, 18}, + 0xE7 = { 2579, 15}, + 0xE8 = { 2594, 14}, + 0xE9 = { 2608, 11}, + 0xEA = { 2619, 10}, + 0xEB = { 2629, 91}, + 0xEC = { 2720, 15}, + 0xED = { 2735, 11}, + 0xEE = { 2746, 12}, + 0xEF = { 2758, 92}, + 0xF0 = { 2850, 3}, + 0xF1 = { 2853, 3}, + 0xF2 = { 2856, 3}, + 0xF3 = { 2859, 3}, + 0xF4 = { 2862, 3}, + 0xF5 = { 2865, 3}, + 0xF6 = { 2868, 3}, + 0xF7 = { 2871, 3}, + 0xF8 = { 2874, 1}, + 0xF9 = { 2875, 1}, + 0xFA = { 2876, 1}, + 0xFB = { 2877, 1}, + 0xFC = { 2878, 1}, + 0xFD = { 2879, 1}, + 0xFE = { 2880, 1}, + 0xFF = { 2881, 1}, } DECODE_INDEX_T32 := [128]lib.Decode_Index{ - 0x74 = { 2884, 23}, - 0x75 = { 2907, 19}, - 0x76 = { 2926, 19}, - 0x77 = { 2945, 104}, - 0x78 = { 3049, 31}, - 0x79 = { 3080, 38}, - 0x7A = { 3118, 23}, - 0x7B = { 3141, 14}, - 0x7C = { 3155, 20}, - 0x7D = { 3175, 71}, - 0x7E = { 3246, 23}, - 0x7F = { 3269, 126}, + 0x74 = { 2882, 23}, + 0x75 = { 2905, 19}, + 0x76 = { 2924, 19}, + 0x77 = { 2943, 104}, + 0x78 = { 3047, 31}, + 0x79 = { 3078, 38}, + 0x7A = { 3116, 23}, + 0x7B = { 3139, 14}, + 0x7C = { 3153, 20}, + 0x7D = { 3173, 71}, + 0x7E = { 3244, 23}, + 0x7F = { 3267, 126}, } DECODE_INDEX_T16 := [64]lib.Decode_Index{ - 0x00 = { 3395, 1}, - 0x01 = { 3396, 1}, - 0x02 = { 3397, 1}, - 0x03 = { 3398, 1}, - 0x04 = { 3399, 1}, - 0x05 = { 3400, 1}, - 0x06 = { 3401, 2}, - 0x07 = { 3403, 2}, - 0x08 = { 3405, 1}, - 0x09 = { 3406, 1}, - 0x0A = { 3407, 1}, - 0x0B = { 3408, 1}, - 0x0C = { 3409, 1}, - 0x0D = { 3410, 1}, - 0x0E = { 3411, 1}, - 0x0F = { 3412, 1}, - 0x10 = { 3413, 16}, - 0x11 = { 3429, 7}, - 0x12 = { 3436, 1}, - 0x13 = { 3437, 1}, - 0x14 = { 3438, 2}, - 0x15 = { 3440, 2}, - 0x16 = { 3442, 2}, - 0x17 = { 3444, 2}, - 0x18 = { 3446, 1}, - 0x19 = { 3447, 1}, - 0x1A = { 3448, 1}, - 0x1B = { 3449, 1}, - 0x1C = { 3450, 1}, - 0x1D = { 3451, 1}, - 0x1E = { 3452, 1}, - 0x1F = { 3453, 1}, - 0x20 = { 3454, 1}, - 0x21 = { 3455, 1}, - 0x22 = { 3456, 1}, - 0x23 = { 3457, 1}, - 0x24 = { 3458, 1}, - 0x25 = { 3459, 1}, - 0x26 = { 3460, 1}, - 0x27 = { 3461, 1}, - 0x28 = { 3462, 1}, - 0x29 = { 3463, 1}, - 0x2A = { 3464, 1}, - 0x2B = { 3465, 1}, - 0x2C = { 3466, 7}, - 0x2D = { 3473, 2}, - 0x2E = { 3475, 4}, - 0x2F = { 3479, 8}, - 0x30 = { 3487, 1}, - 0x31 = { 3488, 1}, - 0x32 = { 3489, 1}, - 0x33 = { 3490, 1}, - 0x34 = { 3491, 1}, - 0x35 = { 3492, 1}, - 0x36 = { 3493, 1}, - 0x37 = { 3494, 3}, - 0x38 = { 3497, 1}, - 0x39 = { 3498, 1}, + 0x00 = { 3393, 1}, + 0x01 = { 3394, 1}, + 0x02 = { 3395, 1}, + 0x03 = { 3396, 1}, + 0x04 = { 3397, 1}, + 0x05 = { 3398, 1}, + 0x06 = { 3399, 2}, + 0x07 = { 3401, 2}, + 0x08 = { 3403, 1}, + 0x09 = { 3404, 1}, + 0x0A = { 3405, 1}, + 0x0B = { 3406, 1}, + 0x0C = { 3407, 1}, + 0x0D = { 3408, 1}, + 0x0E = { 3409, 1}, + 0x0F = { 3410, 1}, + 0x10 = { 3411, 16}, + 0x11 = { 3427, 7}, + 0x12 = { 3434, 1}, + 0x13 = { 3435, 1}, + 0x14 = { 3436, 2}, + 0x15 = { 3438, 2}, + 0x16 = { 3440, 2}, + 0x17 = { 3442, 2}, + 0x18 = { 3444, 1}, + 0x19 = { 3445, 1}, + 0x1A = { 3446, 1}, + 0x1B = { 3447, 1}, + 0x1C = { 3448, 1}, + 0x1D = { 3449, 1}, + 0x1E = { 3450, 1}, + 0x1F = { 3451, 1}, + 0x20 = { 3452, 1}, + 0x21 = { 3453, 1}, + 0x22 = { 3454, 1}, + 0x23 = { 3455, 1}, + 0x24 = { 3456, 1}, + 0x25 = { 3457, 1}, + 0x26 = { 3458, 1}, + 0x27 = { 3459, 1}, + 0x28 = { 3460, 1}, + 0x29 = { 3461, 1}, + 0x2A = { 3462, 1}, + 0x2B = { 3463, 1}, + 0x2C = { 3464, 7}, + 0x2D = { 3471, 2}, + 0x2E = { 3473, 4}, + 0x2F = { 3477, 8}, + 0x30 = { 3485, 1}, + 0x31 = { 3486, 1}, + 0x32 = { 3487, 1}, + 0x33 = { 3488, 1}, + 0x34 = { 3489, 1}, + 0x35 = { 3490, 1}, + 0x36 = { 3491, 1}, + 0x37 = { 3492, 3}, + 0x38 = { 3495, 1}, + 0x39 = { 3496, 1}, } DECODE_INDEX_T32_SUB := [4096]lib.Decode_Index{ - 0xE84 = { 3499, 6}, - 0xE85 = { 3505, 2}, - 0xE86 = { 3507, 1}, - 0xE87 = { 3508, 1}, - 0xE88 = { 3509, 1}, - 0xE89 = { 3510, 1}, - 0xE8A = { 3511, 1}, - 0xE8B = { 3512, 2}, - 0xE8C = { 3514, 4}, - 0xE8D = { 3518, 6}, - 0xE8E = { 3524, 1}, - 0xE8F = { 3525, 1}, - 0xE90 = { 3526, 1}, - 0xE91 = { 3527, 1}, - 0xE92 = { 3528, 2}, - 0xE93 = { 3530, 1}, - 0xE94 = { 3531, 1}, - 0xE95 = { 3532, 1}, - 0xE96 = { 3533, 1}, - 0xE97 = { 3534, 2}, - 0xE9C = { 3536, 1}, - 0xE9D = { 3537, 1}, - 0xE9E = { 3538, 1}, - 0xE9F = { 3539, 1}, - 0xEA0 = { 3540, 1}, - 0xEA1 = { 3541, 2}, - 0xEA2 = { 3543, 1}, - 0xEA3 = { 3544, 1}, - 0xEA4 = { 3545, 6}, - 0xEA5 = { 3551, 2}, - 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, 24}, - 0xEE1 = { 3642, 23}, - 0xEE2 = { 3665, 22}, - 0xEE3 = { 3687, 29}, - 0xEE4 = { 3716, 23}, - 0xEE5 = { 3739, 22}, - 0xEE6 = { 3761, 22}, - 0xEE7 = { 3783, 29}, - 0xEE8 = { 3812, 28}, - 0xEE9 = { 3840, 12}, - 0xEEA = { 3852, 13}, - 0xEEB = { 3865, 18}, - 0xEEC = { 3883, 27}, - 0xEED = { 3910, 13}, - 0xEEE = { 3923, 22}, - 0xEEF = { 3945, 23}, - 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, 11}, - 0xF01 = { 4123, 10}, - 0xF02 = { 4133, 8}, - 0xF03 = { 4141, 8}, - 0xF04 = { 4149, 8}, - 0xF05 = { 4157, 5}, - 0xF06 = { 4162, 5}, - 0xF07 = { 4167, 5}, - 0xF08 = { 4172, 6}, - 0xF09 = { 4178, 6}, - 0xF0A = { 4184, 4}, - 0xF0B = { 4188, 4}, - 0xF0C = { 4192, 4}, - 0xF0D = { 4196, 3}, - 0xF0E = { 4199, 4}, - 0xF0F = { 4203, 4}, - 0xF10 = { 4207, 7}, - 0xF11 = { 4214, 7}, - 0xF12 = { 4221, 6}, - 0xF13 = { 4227, 6}, - 0xF14 = { 4233, 5}, - 0xF15 = { 4238, 4}, - 0xF16 = { 4242, 5}, - 0xF17 = { 4247, 5}, - 0xF18 = { 4252, 5}, - 0xF19 = { 4257, 4}, - 0xF1A = { 4261, 4}, - 0xF1B = { 4265, 5}, - 0xF1C = { 4270, 5}, - 0xF1D = { 4275, 4}, - 0xF1E = { 4279, 4}, - 0xF1F = { 4283, 4}, - 0xF20 = { 4287, 5}, - 0xF21 = { 4292, 4}, - 0xF22 = { 4296, 4}, - 0xF23 = { 4300, 4}, - 0xF24 = { 4304, 5}, - 0xF25 = { 4309, 3}, - 0xF26 = { 4312, 4}, - 0xF27 = { 4316, 4}, - 0xF28 = { 4320, 5}, - 0xF29 = { 4325, 4}, - 0xF2A = { 4329, 4}, - 0xF2B = { 4333, 4}, - 0xF2C = { 4337, 5}, - 0xF2D = { 4342, 3}, - 0xF2E = { 4345, 4}, - 0xF2F = { 4349, 4}, - 0xF30 = { 4353, 6}, - 0xF31 = { 4359, 4}, - 0xF32 = { 4363, 6}, - 0xF33 = { 4369, 4}, - 0xF34 = { 4373, 5}, - 0xF35 = { 4378, 3}, - 0xF36 = { 4381, 6}, - 0xF37 = { 4387, 4}, - 0xF38 = { 4391, 7}, - 0xF39 = { 4398, 4}, - 0xF3A = { 4402, 19}, - 0xF3B = { 4421, 9}, - 0xF3C = { 4430, 5}, - 0xF3D = { 4435, 3}, - 0xF3E = { 4438, 5}, - 0xF3F = { 4443, 4}, - 0xF40 = { 4447, 6}, - 0xF41 = { 4453, 6}, - 0xF42 = { 4459, 5}, - 0xF43 = { 4464, 5}, - 0xF44 = { 4469, 6}, - 0xF45 = { 4475, 5}, - 0xF46 = { 4480, 5}, - 0xF47 = { 4485, 5}, - 0xF48 = { 4490, 6}, - 0xF49 = { 4496, 6}, - 0xF4A = { 4502, 4}, - 0xF4B = { 4506, 4}, - 0xF4C = { 4510, 4}, - 0xF4D = { 4514, 3}, - 0xF4E = { 4517, 4}, - 0xF4F = { 4521, 4}, - 0xF50 = { 4525, 5}, - 0xF51 = { 4530, 5}, - 0xF52 = { 4535, 4}, - 0xF53 = { 4539, 4}, - 0xF54 = { 4543, 5}, - 0xF55 = { 4548, 4}, - 0xF56 = { 4552, 5}, - 0xF57 = { 4557, 5}, - 0xF58 = { 4562, 5}, - 0xF59 = { 4567, 4}, - 0xF5A = { 4571, 4}, - 0xF5B = { 4575, 5}, - 0xF5C = { 4580, 5}, - 0xF5D = { 4585, 4}, - 0xF5E = { 4589, 4}, - 0xF5F = { 4593, 4}, - 0xF60 = { 4597, 5}, - 0xF61 = { 4602, 4}, - 0xF62 = { 4606, 4}, - 0xF63 = { 4610, 4}, - 0xF64 = { 4614, 5}, - 0xF65 = { 4619, 3}, - 0xF66 = { 4622, 4}, - 0xF67 = { 4626, 4}, - 0xF68 = { 4630, 5}, - 0xF69 = { 4635, 4}, - 0xF6A = { 4639, 4}, - 0xF6B = { 4643, 4}, - 0xF6C = { 4647, 5}, - 0xF6D = { 4652, 3}, - 0xF6E = { 4655, 4}, - 0xF6F = { 4659, 4}, - 0xF70 = { 4663, 5}, - 0xF71 = { 4668, 4}, - 0xF72 = { 4672, 4}, - 0xF73 = { 4676, 4}, - 0xF74 = { 4680, 4}, - 0xF75 = { 4684, 3}, - 0xF76 = { 4687, 4}, - 0xF77 = { 4691, 4}, - 0xF78 = { 4695, 8}, - 0xF79 = { 4703, 4}, - 0xF7A = { 4707, 4}, - 0xF7B = { 4711, 4}, - 0xF7C = { 4715, 4}, - 0xF7D = { 4719, 3}, - 0xF7E = { 4722, 4}, - 0xF7F = { 4726, 5}, - 0xF80 = { 4731, 1}, - 0xF81 = { 4732, 1}, - 0xF82 = { 4733, 1}, - 0xF83 = { 4734, 2}, - 0xF84 = { 4736, 1}, - 0xF85 = { 4737, 2}, - 0xF88 = { 4739, 1}, - 0xF89 = { 4740, 2}, - 0xF8A = { 4742, 1}, - 0xF8B = { 4743, 1}, - 0xF8C = { 4744, 1}, - 0xF8D = { 4745, 2}, - 0xF91 = { 4747, 1}, - 0xF93 = { 4748, 1}, - 0xF99 = { 4749, 2}, - 0xF9B = { 4751, 1}, - 0xFA0 = { 4752, 3}, - 0xFA1 = { 4755, 2}, - 0xFA2 = { 4757, 3}, - 0xFA3 = { 4760, 2}, - 0xFA4 = { 4762, 3}, - 0xFA5 = { 4765, 2}, - 0xFA6 = { 4767, 1}, - 0xFA8 = { 4768, 10}, - 0xFA9 = { 4778, 10}, - 0xFAA = { 4788, 6}, - 0xFAB = { 4794, 1}, - 0xFAC = { 4795, 6}, - 0xFAD = { 4801, 6}, - 0xFAE = { 4807, 6}, - 0xFB0 = { 4813, 3}, - 0xFB5 = { 4816, 1}, - 0xFB8 = { 4817, 1}, - 0xFB9 = { 4818, 1}, - 0xFBA = { 4819, 1}, - 0xFBB = { 4820, 1}, - 0xFBC = { 4821, 1}, - 0xFBE = { 4822, 1}, - 0xFC0 = { 4823, 1}, - 0xFC1 = { 4824, 1}, - 0xFC2 = { 4825, 3}, - 0xFC3 = { 4828, 3}, - 0xFC4 = { 4831, 1}, - 0xFC5 = { 4832, 1}, - 0xFC6 = { 4833, 2}, - 0xFC7 = { 4835, 2}, - 0xFC8 = { 4837, 7}, - 0xFC9 = { 4844, 11}, - 0xFCA = { 4855, 3}, - 0xFCB = { 4858, 3}, - 0xFCC = { 4861, 7}, - 0xFCD = { 4868, 7}, - 0xFCE = { 4875, 2}, - 0xFCF = { 4877, 2}, - 0xFD2 = { 4879, 1}, - 0xFD3 = { 4880, 1}, - 0xFD9 = { 4881, 4}, - 0xFDA = { 4885, 1}, - 0xFDB = { 4886, 1}, - 0xFE0 = { 4887, 28}, - 0xFE1 = { 4915, 26}, - 0xFE2 = { 4941, 26}, - 0xFE3 = { 4967, 32}, - 0xFE4 = { 4999, 29}, - 0xFE5 = { 5028, 27}, - 0xFE6 = { 5055, 27}, - 0xFE7 = { 5082, 33}, - 0xFE8 = { 5115, 32}, - 0xFE9 = { 5147, 17}, - 0xFEA = { 5164, 17}, - 0xFEB = { 5181, 29}, - 0xFEC = { 5210, 31}, - 0xFED = { 5241, 18}, - 0xFEE = { 5259, 26}, - 0xFEF = { 5285, 32}, - 0xFF0 = { 5317, 19}, - 0xFF1 = { 5336, 18}, - 0xFF2 = { 5354, 17}, - 0xFF3 = { 5371, 17}, - 0xFF4 = { 5388, 19}, - 0xFF5 = { 5407, 18}, - 0xFF6 = { 5425, 17}, - 0xFF7 = { 5442, 17}, - 0xFF8 = { 5459, 4}, - 0xFF9 = { 5463, 4}, - 0xFFA = { 5467, 4}, - 0xFFB = { 5471, 17}, - 0xFFC = { 5488, 4}, - 0xFFD = { 5492, 4}, - 0xFFE = { 5496, 4}, - 0xFFF = { 5500, 17}, + 0xE84 = { 3497, 6}, + 0xE85 = { 3503, 2}, + 0xE86 = { 3505, 1}, + 0xE87 = { 3506, 1}, + 0xE88 = { 3507, 1}, + 0xE89 = { 3508, 1}, + 0xE8A = { 3509, 1}, + 0xE8B = { 3510, 2}, + 0xE8C = { 3512, 4}, + 0xE8D = { 3516, 6}, + 0xE8E = { 3522, 1}, + 0xE8F = { 3523, 1}, + 0xE90 = { 3524, 1}, + 0xE91 = { 3525, 1}, + 0xE92 = { 3526, 2}, + 0xE93 = { 3528, 1}, + 0xE94 = { 3529, 1}, + 0xE95 = { 3530, 1}, + 0xE96 = { 3531, 1}, + 0xE97 = { 3532, 2}, + 0xE9C = { 3534, 1}, + 0xE9D = { 3535, 1}, + 0xE9E = { 3536, 1}, + 0xE9F = { 3537, 1}, + 0xEA0 = { 3538, 1}, + 0xEA1 = { 3539, 2}, + 0xEA2 = { 3541, 1}, + 0xEA3 = { 3542, 1}, + 0xEA4 = { 3543, 6}, + 0xEA5 = { 3549, 2}, + 0xEA6 = { 3551, 1}, + 0xEA7 = { 3552, 1}, + 0xEA8 = { 3553, 1}, + 0xEA9 = { 3554, 2}, + 0xEB1 = { 3556, 1}, + 0xEB4 = { 3557, 1}, + 0xEB5 = { 3558, 1}, + 0xEB6 = { 3559, 1}, + 0xEB7 = { 3560, 1}, + 0xEBB = { 3561, 1}, + 0xEBC = { 3562, 1}, + 0xEBD = { 3563, 1}, + 0xEC0 = { 3564, 2}, + 0xEC1 = { 3566, 1}, + 0xEC2 = { 3567, 3}, + 0xEC3 = { 3570, 2}, + 0xEC4 = { 3572, 2}, + 0xEC5 = { 3574, 1}, + 0xEC6 = { 3575, 7}, + 0xEC7 = { 3582, 2}, + 0xEC8 = { 3584, 1}, + 0xEC9 = { 3585, 1}, + 0xECA = { 3586, 2}, + 0xECB = { 3588, 2}, + 0xECC = { 3590, 1}, + 0xECD = { 3591, 1}, + 0xECE = { 3592, 2}, + 0xECF = { 3594, 2}, + 0xED6 = { 3596, 4}, + 0xED8 = { 3600, 4}, + 0xED9 = { 3604, 4}, + 0xEDC = { 3608, 4}, + 0xEDD = { 3612, 4}, + 0xEE0 = { 3616, 24}, + 0xEE1 = { 3640, 23}, + 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, 23}, + 0xEF0 = { 3966, 15}, + 0xEF1 = { 3981, 15}, + 0xEF2 = { 3996, 15}, + 0xEF3 = { 4011, 15}, + 0xEF4 = { 4026, 15}, + 0xEF5 = { 4041, 15}, + 0xEF6 = { 4056, 15}, + 0xEF7 = { 4071, 15}, + 0xEF8 = { 4086, 3}, + 0xEF9 = { 4089, 3}, + 0xEFA = { 4092, 3}, + 0xEFB = { 4095, 3}, + 0xEFC = { 4098, 3}, + 0xEFD = { 4101, 3}, + 0xEFE = { 4104, 3}, + 0xEFF = { 4107, 3}, + 0xF00 = { 4110, 11}, + 0xF01 = { 4121, 10}, + 0xF02 = { 4131, 8}, + 0xF03 = { 4139, 8}, + 0xF04 = { 4147, 8}, + 0xF05 = { 4155, 5}, + 0xF06 = { 4160, 5}, + 0xF07 = { 4165, 5}, + 0xF08 = { 4170, 6}, + 0xF09 = { 4176, 6}, + 0xF0A = { 4182, 4}, + 0xF0B = { 4186, 4}, + 0xF0C = { 4190, 4}, + 0xF0D = { 4194, 3}, + 0xF0E = { 4197, 4}, + 0xF0F = { 4201, 4}, + 0xF10 = { 4205, 7}, + 0xF11 = { 4212, 7}, + 0xF12 = { 4219, 6}, + 0xF13 = { 4225, 6}, + 0xF14 = { 4231, 5}, + 0xF15 = { 4236, 4}, + 0xF16 = { 4240, 5}, + 0xF17 = { 4245, 5}, + 0xF18 = { 4250, 5}, + 0xF19 = { 4255, 4}, + 0xF1A = { 4259, 4}, + 0xF1B = { 4263, 5}, + 0xF1C = { 4268, 5}, + 0xF1D = { 4273, 4}, + 0xF1E = { 4277, 4}, + 0xF1F = { 4281, 4}, + 0xF20 = { 4285, 5}, + 0xF21 = { 4290, 4}, + 0xF22 = { 4294, 4}, + 0xF23 = { 4298, 4}, + 0xF24 = { 4302, 5}, + 0xF25 = { 4307, 3}, + 0xF26 = { 4310, 4}, + 0xF27 = { 4314, 4}, + 0xF28 = { 4318, 5}, + 0xF29 = { 4323, 4}, + 0xF2A = { 4327, 4}, + 0xF2B = { 4331, 4}, + 0xF2C = { 4335, 5}, + 0xF2D = { 4340, 3}, + 0xF2E = { 4343, 4}, + 0xF2F = { 4347, 4}, + 0xF30 = { 4351, 6}, + 0xF31 = { 4357, 4}, + 0xF32 = { 4361, 6}, + 0xF33 = { 4367, 4}, + 0xF34 = { 4371, 5}, + 0xF35 = { 4376, 3}, + 0xF36 = { 4379, 6}, + 0xF37 = { 4385, 4}, + 0xF38 = { 4389, 7}, + 0xF39 = { 4396, 4}, + 0xF3A = { 4400, 19}, + 0xF3B = { 4419, 9}, + 0xF3C = { 4428, 5}, + 0xF3D = { 4433, 3}, + 0xF3E = { 4436, 5}, + 0xF3F = { 4441, 4}, + 0xF40 = { 4445, 6}, + 0xF41 = { 4451, 6}, + 0xF42 = { 4457, 5}, + 0xF43 = { 4462, 5}, + 0xF44 = { 4467, 6}, + 0xF45 = { 4473, 5}, + 0xF46 = { 4478, 5}, + 0xF47 = { 4483, 5}, + 0xF48 = { 4488, 6}, + 0xF49 = { 4494, 6}, + 0xF4A = { 4500, 4}, + 0xF4B = { 4504, 4}, + 0xF4C = { 4508, 4}, + 0xF4D = { 4512, 3}, + 0xF4E = { 4515, 4}, + 0xF4F = { 4519, 4}, + 0xF50 = { 4523, 5}, + 0xF51 = { 4528, 5}, + 0xF52 = { 4533, 4}, + 0xF53 = { 4537, 4}, + 0xF54 = { 4541, 5}, + 0xF55 = { 4546, 4}, + 0xF56 = { 4550, 5}, + 0xF57 = { 4555, 5}, + 0xF58 = { 4560, 5}, + 0xF59 = { 4565, 4}, + 0xF5A = { 4569, 4}, + 0xF5B = { 4573, 5}, + 0xF5C = { 4578, 5}, + 0xF5D = { 4583, 4}, + 0xF5E = { 4587, 4}, + 0xF5F = { 4591, 4}, + 0xF60 = { 4595, 5}, + 0xF61 = { 4600, 4}, + 0xF62 = { 4604, 4}, + 0xF63 = { 4608, 4}, + 0xF64 = { 4612, 5}, + 0xF65 = { 4617, 3}, + 0xF66 = { 4620, 4}, + 0xF67 = { 4624, 4}, + 0xF68 = { 4628, 5}, + 0xF69 = { 4633, 4}, + 0xF6A = { 4637, 4}, + 0xF6B = { 4641, 4}, + 0xF6C = { 4645, 5}, + 0xF6D = { 4650, 3}, + 0xF6E = { 4653, 4}, + 0xF6F = { 4657, 4}, + 0xF70 = { 4661, 5}, + 0xF71 = { 4666, 4}, + 0xF72 = { 4670, 4}, + 0xF73 = { 4674, 4}, + 0xF74 = { 4678, 4}, + 0xF75 = { 4682, 3}, + 0xF76 = { 4685, 4}, + 0xF77 = { 4689, 4}, + 0xF78 = { 4693, 8}, + 0xF79 = { 4701, 4}, + 0xF7A = { 4705, 4}, + 0xF7B = { 4709, 4}, + 0xF7C = { 4713, 4}, + 0xF7D = { 4717, 3}, + 0xF7E = { 4720, 4}, + 0xF7F = { 4724, 5}, + 0xF80 = { 4729, 1}, + 0xF81 = { 4730, 1}, + 0xF82 = { 4731, 1}, + 0xF83 = { 4732, 2}, + 0xF84 = { 4734, 1}, + 0xF85 = { 4735, 2}, + 0xF88 = { 4737, 1}, + 0xF89 = { 4738, 2}, + 0xF8A = { 4740, 1}, + 0xF8B = { 4741, 1}, + 0xF8C = { 4742, 1}, + 0xF8D = { 4743, 2}, + 0xF91 = { 4745, 1}, + 0xF93 = { 4746, 1}, + 0xF99 = { 4747, 2}, + 0xF9B = { 4749, 1}, + 0xFA0 = { 4750, 3}, + 0xFA1 = { 4753, 2}, + 0xFA2 = { 4755, 3}, + 0xFA3 = { 4758, 2}, + 0xFA4 = { 4760, 3}, + 0xFA5 = { 4763, 2}, + 0xFA6 = { 4765, 1}, + 0xFA8 = { 4766, 10}, + 0xFA9 = { 4776, 10}, + 0xFAA = { 4786, 6}, + 0xFAB = { 4792, 1}, + 0xFAC = { 4793, 6}, + 0xFAD = { 4799, 6}, + 0xFAE = { 4805, 6}, + 0xFB0 = { 4811, 3}, + 0xFB5 = { 4814, 1}, + 0xFB8 = { 4815, 1}, + 0xFB9 = { 4816, 1}, + 0xFBA = { 4817, 1}, + 0xFBB = { 4818, 1}, + 0xFBC = { 4819, 1}, + 0xFBE = { 4820, 1}, + 0xFC0 = { 4821, 1}, + 0xFC1 = { 4822, 1}, + 0xFC2 = { 4823, 3}, + 0xFC3 = { 4826, 3}, + 0xFC4 = { 4829, 1}, + 0xFC5 = { 4830, 1}, + 0xFC6 = { 4831, 2}, + 0xFC7 = { 4833, 2}, + 0xFC8 = { 4835, 7}, + 0xFC9 = { 4842, 11}, + 0xFCA = { 4853, 3}, + 0xFCB = { 4856, 3}, + 0xFCC = { 4859, 7}, + 0xFCD = { 4866, 7}, + 0xFCE = { 4873, 2}, + 0xFCF = { 4875, 2}, + 0xFD2 = { 4877, 1}, + 0xFD3 = { 4878, 1}, + 0xFD9 = { 4879, 4}, + 0xFDA = { 4883, 1}, + 0xFDB = { 4884, 1}, + 0xFE0 = { 4885, 28}, + 0xFE1 = { 4913, 26}, + 0xFE2 = { 4939, 26}, + 0xFE3 = { 4965, 32}, + 0xFE4 = { 4997, 29}, + 0xFE5 = { 5026, 27}, + 0xFE6 = { 5053, 27}, + 0xFE7 = { 5080, 33}, + 0xFE8 = { 5113, 32}, + 0xFE9 = { 5145, 17}, + 0xFEA = { 5162, 17}, + 0xFEB = { 5179, 29}, + 0xFEC = { 5208, 31}, + 0xFED = { 5239, 18}, + 0xFEE = { 5257, 26}, + 0xFEF = { 5283, 32}, + 0xFF0 = { 5315, 19}, + 0xFF1 = { 5334, 18}, + 0xFF2 = { 5352, 17}, + 0xFF3 = { 5369, 17}, + 0xFF4 = { 5386, 19}, + 0xFF5 = { 5405, 18}, + 0xFF6 = { 5423, 17}, + 0xFF7 = { 5440, 17}, + 0xFF8 = { 5457, 4}, + 0xFF9 = { 5461, 4}, + 0xFFA = { 5465, 4}, + 0xFFB = { 5469, 17}, + 0xFFC = { 5486, 4}, + 0xFFD = { 5490, 4}, + 0xFFE = { 5494, 4}, + 0xFFF = { 5498, 17}, } diff --git a/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin b/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin index eae97f2f9..a10374791 100644 --- a/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin +++ b/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin @@ -8,7 +8,7 @@ package rexcode_arm32_generated import lib "../.." @(rodata) -ENCODE_FORMS := [1726]lib.Encoding{ +ENCODE_FORMS := [1725]lib.Encoding{ // .AND { .AND, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, @@ -1994,7 +1994,6 @@ ENCODE_FORMS := [1726]lib.Encoding{ // .VUSMMLA { .VUSMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, // .VSUDOT - { .VSUDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D50, 0xFFB00F50, .V8, .A32, {}, {.NONE,.NONE} }, { .VSUDOT, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {}, {.U8,.NONE} }, // .VUSDOT { .VUSDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {}, {.S8,.NONE} }, @@ -2764,162 +2763,162 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .VSMMLA = { 1547, 1}, .VUMMLA = { 1548, 1}, .VUSMMLA = { 1549, 1}, - .VSUDOT = { 1550, 2}, - .VUSDOT = { 1552, 4}, - .VQABS = { 1556, 1}, - .VQNEG = { 1557, 1}, - .VMOVX = { 1558, 1}, - .VINS = { 1559, 1}, - .IT = { 1560, 1}, - .TT = { 1561, 1}, - .TTT = { 1562, 1}, - .TTA = { 1563, 1}, - .TTAT = { 1564, 1}, - .SG = { 1565, 1}, - .BXNS = { 1566, 1}, - .BLXNS = { 1567, 1}, - .PAC = { 1568, 1}, - .PACBTI = { 1569, 1}, - .AUT = { 1570, 1}, - .AUTG = { 1571, 1}, - .BTI = { 1572, 1}, - .WLS = { 1573, 1}, - .WLSTP = { 1574, 1}, - .DLS = { 1575, 1}, - .DLSTP = { 1576, 1}, - .LE = { 1577, 1}, - .LETP = { 1578, 1}, - .LCTP = { 1579, 1}, - .BF = { 1580, 1}, - .BFX = { 1581, 1}, - .BFL = { 1582, 1}, - .BFLX = { 1583, 1}, - .BFCSEL = { 1584, 1}, - .CX1 = { 1585, 1}, - .CX1A = { 1586, 1}, - .CX1D = { 1587, 1}, - .CX1DA = { 1588, 1}, - .CX2 = { 1589, 1}, - .CX2A = { 1590, 1}, - .CX2D = { 1591, 1}, - .CX2DA = { 1592, 1}, - .CX3 = { 1593, 1}, - .CX3A = { 1594, 1}, - .CX3D = { 1595, 1}, - .CX3DA = { 1596, 1}, - .VCX1 = { 1597, 2}, - .VCX1A = { 1599, 2}, - .VCX2 = { 1601, 2}, - .VCX2A = { 1603, 2}, - .VCX3 = { 1605, 2}, - .VCX3A = { 1607, 2}, - .VPT = { 1609, 1}, - .VPST = { 1610, 1}, - .VPSEL = { 1611, 1}, - .VPNOT = { 1612, 1}, - .VCTP = { 1613, 1}, - .VADDV = { 1614, 1}, - .VADDVA = { 1615, 1}, - .VADDLV = { 1616, 1}, - .VADDLVA = { 1617, 1}, - .VMAXV = { 1618, 1}, - .VMAXAV = { 1619, 1}, - .VMINV = { 1620, 1}, - .VMINAV = { 1621, 1}, - .VMAXNMV = { 1622, 1}, - .VMAXNMAV = { 1623, 1}, - .VMINNMV = { 1624, 1}, - .VMINNMAV = { 1625, 1}, - .VABAV = { 1626, 1}, - .VMLADAV = { 1627, 1}, - .VMLADAVA = { 1628, 1}, - .VMLADAVX = { 1629, 1}, - .VMLADAVAX = { 1630, 1}, - .VMLALDAV = { 1631, 1}, - .VMLALDAVA = { 1632, 1}, - .VMLALDAVX = { 1633, 1}, - .VMLALDAVAX = { 1634, 1}, - .VMLSDAV = { 1635, 1}, - .VMLSDAVA = { 1636, 1}, - .VMLSDAVX = { 1637, 1}, - .VMLSDAVAX = { 1638, 1}, - .VMLSLDAV = { 1639, 1}, - .VMLSLDAVA = { 1640, 1}, - .VMLSLDAVX = { 1641, 1}, - .VMLSLDAVAX = { 1642, 1}, - .VRMLALDAVH = { 1643, 1}, - .VRMLALDAVHA = { 1644, 1}, - .VRMLALDAVHX = { 1645, 1}, - .VRMLALDAVHAX = { 1646, 1}, - .VRMLSLDAVH = { 1647, 1}, - .VRMLSLDAVHA = { 1648, 1}, - .VRMLSLDAVHX = { 1649, 1}, - .VRMLSLDAVHAX = { 1650, 1}, - .VMLAV = { 1651, 1}, - .VMLAVA = { 1652, 1}, - .VMLSV = { 1653, 1}, - .VMLSVA = { 1654, 1}, - .VCMUL = { 1655, 1}, - .VHCADD = { 1656, 2}, - .VBRSR = { 1658, 1}, - .VSHLC = { 1659, 1}, - .VDDUP = { 1660, 1}, - .VIDUP = { 1661, 1}, - .VDWDUP = { 1662, 1}, - .VIWDUP = { 1663, 1}, - .VMOVNB = { 1664, 1}, - .VMOVNT = { 1665, 1}, - .VQMOVNB = { 1666, 1}, - .VQMOVNT = { 1667, 1}, - .VQMOVUNB = { 1668, 1}, - .VQMOVUNT = { 1669, 1}, - .VSHLLB = { 1670, 1}, - .VSHLLT = { 1671, 1}, - .VMULLB = { 1672, 1}, - .VMULLT = { 1673, 1}, - .VMLALB = { 1674, 1}, - .VMLALT = { 1675, 1}, - .VMLSLB = { 1676, 1}, - .VMLSLT = { 1677, 1}, - .VSHRNB = { 1678, 1}, - .VSHRNT = { 1679, 1}, - .VRSHRNB = { 1680, 1}, - .VRSHRNT = { 1681, 1}, - .VQSHRNB = { 1682, 1}, - .VQSHRNT = { 1683, 1}, - .VQRSHRNB = { 1684, 1}, - .VQRSHRNT = { 1685, 1}, - .VQSHRUNB = { 1686, 1}, - .VQSHRUNT = { 1687, 1}, - .VQRSHRUNB = { 1688, 1}, - .VQRSHRUNT = { 1689, 1}, - .VQDMLADH = { 1690, 1}, - .VQDMLADHX = { 1691, 1}, - .VQDMLSDH = { 1692, 1}, - .VQDMLSDHX = { 1693, 1}, - .VQRDMLADH = { 1694, 1}, - .VQRDMLADHX = { 1695, 1}, - .VQRDMLSDH = { 1696, 1}, - .VQRDMLSDHX = { 1697, 1}, - .VLDRB = { 1698, 2}, - .VLDRH = { 1700, 2}, - .VLDRW = { 1702, 2}, - .VLDRD = { 1704, 2}, - .VSTRB = { 1706, 2}, - .VSTRH = { 1708, 2}, - .VSTRW = { 1710, 2}, - .VSTRD = { 1712, 2}, - .VLD20 = { 1714, 1}, - .VLD21 = { 1715, 1}, - .VLD40 = { 1716, 1}, - .VLD41 = { 1717, 1}, - .VLD42 = { 1718, 1}, - .VLD43 = { 1719, 1}, - .VST20 = { 1720, 1}, - .VST21 = { 1721, 1}, - .VST40 = { 1722, 1}, - .VST41 = { 1723, 1}, - .VST42 = { 1724, 1}, - .VST43 = { 1725, 1}, - ._COUNT = { 1726, 0}, + .VSUDOT = { 1550, 1}, + .VUSDOT = { 1551, 4}, + .VQABS = { 1555, 1}, + .VQNEG = { 1556, 1}, + .VMOVX = { 1557, 1}, + .VINS = { 1558, 1}, + .IT = { 1559, 1}, + .TT = { 1560, 1}, + .TTT = { 1561, 1}, + .TTA = { 1562, 1}, + .TTAT = { 1563, 1}, + .SG = { 1564, 1}, + .BXNS = { 1565, 1}, + .BLXNS = { 1566, 1}, + .PAC = { 1567, 1}, + .PACBTI = { 1568, 1}, + .AUT = { 1569, 1}, + .AUTG = { 1570, 1}, + .BTI = { 1571, 1}, + .WLS = { 1572, 1}, + .WLSTP = { 1573, 1}, + .DLS = { 1574, 1}, + .DLSTP = { 1575, 1}, + .LE = { 1576, 1}, + .LETP = { 1577, 1}, + .LCTP = { 1578, 1}, + .BF = { 1579, 1}, + .BFX = { 1580, 1}, + .BFL = { 1581, 1}, + .BFLX = { 1582, 1}, + .BFCSEL = { 1583, 1}, + .CX1 = { 1584, 1}, + .CX1A = { 1585, 1}, + .CX1D = { 1586, 1}, + .CX1DA = { 1587, 1}, + .CX2 = { 1588, 1}, + .CX2A = { 1589, 1}, + .CX2D = { 1590, 1}, + .CX2DA = { 1591, 1}, + .CX3 = { 1592, 1}, + .CX3A = { 1593, 1}, + .CX3D = { 1594, 1}, + .CX3DA = { 1595, 1}, + .VCX1 = { 1596, 2}, + .VCX1A = { 1598, 2}, + .VCX2 = { 1600, 2}, + .VCX2A = { 1602, 2}, + .VCX3 = { 1604, 2}, + .VCX3A = { 1606, 2}, + .VPT = { 1608, 1}, + .VPST = { 1609, 1}, + .VPSEL = { 1610, 1}, + .VPNOT = { 1611, 1}, + .VCTP = { 1612, 1}, + .VADDV = { 1613, 1}, + .VADDVA = { 1614, 1}, + .VADDLV = { 1615, 1}, + .VADDLVA = { 1616, 1}, + .VMAXV = { 1617, 1}, + .VMAXAV = { 1618, 1}, + .VMINV = { 1619, 1}, + .VMINAV = { 1620, 1}, + .VMAXNMV = { 1621, 1}, + .VMAXNMAV = { 1622, 1}, + .VMINNMV = { 1623, 1}, + .VMINNMAV = { 1624, 1}, + .VABAV = { 1625, 1}, + .VMLADAV = { 1626, 1}, + .VMLADAVA = { 1627, 1}, + .VMLADAVX = { 1628, 1}, + .VMLADAVAX = { 1629, 1}, + .VMLALDAV = { 1630, 1}, + .VMLALDAVA = { 1631, 1}, + .VMLALDAVX = { 1632, 1}, + .VMLALDAVAX = { 1633, 1}, + .VMLSDAV = { 1634, 1}, + .VMLSDAVA = { 1635, 1}, + .VMLSDAVX = { 1636, 1}, + .VMLSDAVAX = { 1637, 1}, + .VMLSLDAV = { 1638, 1}, + .VMLSLDAVA = { 1639, 1}, + .VMLSLDAVX = { 1640, 1}, + .VMLSLDAVAX = { 1641, 1}, + .VRMLALDAVH = { 1642, 1}, + .VRMLALDAVHA = { 1643, 1}, + .VRMLALDAVHX = { 1644, 1}, + .VRMLALDAVHAX = { 1645, 1}, + .VRMLSLDAVH = { 1646, 1}, + .VRMLSLDAVHA = { 1647, 1}, + .VRMLSLDAVHX = { 1648, 1}, + .VRMLSLDAVHAX = { 1649, 1}, + .VMLAV = { 1650, 1}, + .VMLAVA = { 1651, 1}, + .VMLSV = { 1652, 1}, + .VMLSVA = { 1653, 1}, + .VCMUL = { 1654, 1}, + .VHCADD = { 1655, 2}, + .VBRSR = { 1657, 1}, + .VSHLC = { 1658, 1}, + .VDDUP = { 1659, 1}, + .VIDUP = { 1660, 1}, + .VDWDUP = { 1661, 1}, + .VIWDUP = { 1662, 1}, + .VMOVNB = { 1663, 1}, + .VMOVNT = { 1664, 1}, + .VQMOVNB = { 1665, 1}, + .VQMOVNT = { 1666, 1}, + .VQMOVUNB = { 1667, 1}, + .VQMOVUNT = { 1668, 1}, + .VSHLLB = { 1669, 1}, + .VSHLLT = { 1670, 1}, + .VMULLB = { 1671, 1}, + .VMULLT = { 1672, 1}, + .VMLALB = { 1673, 1}, + .VMLALT = { 1674, 1}, + .VMLSLB = { 1675, 1}, + .VMLSLT = { 1676, 1}, + .VSHRNB = { 1677, 1}, + .VSHRNT = { 1678, 1}, + .VRSHRNB = { 1679, 1}, + .VRSHRNT = { 1680, 1}, + .VQSHRNB = { 1681, 1}, + .VQSHRNT = { 1682, 1}, + .VQRSHRNB = { 1683, 1}, + .VQRSHRNT = { 1684, 1}, + .VQSHRUNB = { 1685, 1}, + .VQSHRUNT = { 1686, 1}, + .VQRSHRUNB = { 1687, 1}, + .VQRSHRUNT = { 1688, 1}, + .VQDMLADH = { 1689, 1}, + .VQDMLADHX = { 1690, 1}, + .VQDMLSDH = { 1691, 1}, + .VQDMLSDHX = { 1692, 1}, + .VQRDMLADH = { 1693, 1}, + .VQRDMLADHX = { 1694, 1}, + .VQRDMLSDH = { 1695, 1}, + .VQRDMLSDHX = { 1696, 1}, + .VLDRB = { 1697, 2}, + .VLDRH = { 1699, 2}, + .VLDRW = { 1701, 2}, + .VLDRD = { 1703, 2}, + .VSTRB = { 1705, 2}, + .VSTRH = { 1707, 2}, + .VSTRW = { 1709, 2}, + .VSTRD = { 1711, 2}, + .VLD20 = { 1713, 1}, + .VLD21 = { 1714, 1}, + .VLD40 = { 1715, 1}, + .VLD41 = { 1716, 1}, + .VLD42 = { 1717, 1}, + .VLD43 = { 1718, 1}, + .VST20 = { 1719, 1}, + .VST21 = { 1720, 1}, + .VST40 = { 1721, 1}, + .VST41 = { 1722, 1}, + .VST42 = { 1723, 1}, + .VST43 = { 1724, 1}, + ._COUNT = { 1725, 0}, } diff --git a/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin b/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin index 1b8504fb4493eefa618905831ae8a4fe0116c7bb..5acc1822e96c4ca483fd69199cd29a40b8c55de6 100644 GIT binary patch delta 5168 zcmbOgHZ5#}fRL~zix!J2i#CfIizJH(vcHgeJ%|mH1F;=h99X1TWLQ*L)L5KYoWZm!iwlc8iyN5j!Qu&~y;!`#v@?qn zn08@t1=Gm#AoD=-AQ~hOqG1?hwjqmAJqyTin4k}fFN+_GKT7~h5KACSFiQxFDoYqk zC`&j?1dAF=Buf-aG)oLiELb*w?e3p7umO_>SmSUD7Bt!gJN-&%d!4i&S0LXdR9RRYt z1Z+LX5|H&-EZJz*Lv(|zSFOileJM*BOF2sgOBG8cOEpUkOD#(s-0yKL^(+l6jVw(p zEiBD&U$?Tfv9z;vuynC>!d3RNbhGrZ^t1G_OkkPFGKpm}%T$&rEYn%0vCL$d!7`g= z7Ry|gIV|<_S>~}UWLdznm}L>mGM1$*OIVh(tYlfivWjIj%K?_-EL&Ojvm9nQ!?K-a zGs{MnT`Wggwy!rjh~)^&UY4CKyID4|oM1W4vVmnS z%NmwbEazCxvs`4kz;c!43d?1dODxw}uCd%;xyf>iR4*wzQXSRM=Xz7Kw;3q($3P!(gjxy3V~jhK9+u#i7XRXCbLXpnZh!aWg5$L za2U*Dnav_Uhh;7cC=8x}LtzoiVwNQ=OIen&tYldZ3WdoRMOEw9u&iY{!g849ILir^ zlPt$r4zlcH+0Sx-A%UM^lg4BRyr?F0F zoxwVjbvElP);X;6Sm(1YU|q<%h;=dR64s@x%b==Hu%2W+1=n*L#iTQ=XIam&o@c$l zdXe=K>t)s}lebD7m$PKEV6$ekVzXtlVY6eiXH#ZXVO3>SV^wF>V0B=dJWEn0L!Z@v z)sWSQ)tJ?U)t@bZEs)KU)r!@cHHgiL)tS|W)s@wa)t%Lo)r&Ql&70MSHH6KV)sNMm zHGnmcHHbBsHH0;kHH zAzKk!FRJ`N8s?CXGX8FVNoaF_}OO{tGZ=ouFvHWED!U7^e>i@7jgNlQAoUDwj9IX7T{H%Xj z{;~XLVPIur7XXRsMXJu#QVr63GVr60FVdY`vW#wgMX60t(W|d-9WL097VwGi; zXO&}Bfbs=c1zCkyg^|QTs$go6*)WyjtP-q}tTL=3tfH)9tkSFqemz9Mlob?}Hmn}t z=<^0gQxt0~YaDALYZ7ZRYYJ;BYZ_}lYXNH^YY}TFD@465TzxnzKGmpZqo}RNFj|{c zhgFwV59}aoR)iHktf8zZS}}A&tO2DzLLO*k?F5@|%UTanj?ZA2VjF1K5K@co0f-Ga zoL>(QRFE~GOlQVw&T0YAO|aY(&ziuR&YHoR$(qHQ&6>lS%bLep&)UG+!rIQ-#fnW9 zByNUN29#q#xw9UWEpcln%_(iH9XK2Vk%5&butLO)HQon{zaWY=S+!U}B@WD`xEu;m zZO0nH8a;WwxFoARoaMk8$r=L|bA+>qR96ovZipwlS$kRgSSPYhWt|Hylp%#SNNf`8 zG_cqLXweK31F3-()#&^l*2%0>>RD&8E`@5C&AOCzIqM2=9WV#Vn!q{-Dm#^R9_vD= z=yWg}V)Z-r743sM93tAsT0ax)W{6RJIM`EI7eftS3^k^obqQ2t z0_zf}7|4MTa}Z8~@Mo|h9JdIn4@%dw_Cp0GKxvRM5ZA#pA!vwkQ&^8d)k65#On}HB z9D-`%6xQQV6Y3!nm_{6dyBTK4K2~Hgh`uSThoHWPSlG{cfb}5MXjqW%Wt|GH;vp(v zrmbRK&ANtlZ9VHc)(xy1SvRq6X5GrVjdeTg4%Yoh%Ga}QVco^Ln{^M|Ia62T~QBi z^T4#iXi$QK1Q&9GgNR^Ha1bM5`auZ}qIwD|G@-$1L{x)R)URX(1sAGzM1q5egAyD_ z@k*%A5Jo`cK_)=tVGcm25eW{W10E_M|ATToF-AbNLM(zC0Cf_i9SAZ7q6*;!h+*SY_FsvMR7WWPQ#m!}f$#p6vna3sz~i$E3>rdAI ztgLL@Y=UgBS>Ld}Wqrr`h4mLJ0~;F~Pd%Fu+gH}#tc+~zY`kp3Y_C|qv;JjeX5(bz zXA@=n!TOJtg^i0%fK80;8|xodCN>T>J~k0HaW+LZB{nHGRW=DWWj0ARH8vGC8#Y@u zV>U}RD>h?r3m3!(@j$IzT{b;7eKrF&LpCEe8#Z+|4K__SEjDd79kzNCHd8h;Hgh!1 zxHZ^h{6nSg9yNgT9?icUMQIkGviIkUO2xw3h&d9(Sj Q`LaPe&*&=A`Gj=>04Im~l>h($ delta 5220 zcmbOhHY;p{fRL~jizbUIi#CfIizJHPELbdAtXQmBQ1ye=SksMaGXa%FJ?OTZL(v-p4=05Sw*Fvt)P4a3;PeOdfi{8<86 z0$GAtf>=UWLRnN)L5ceqFG{CVp-zAvhggcEcJ;j2`ou0$t-FtDJ;<} zsVuQz1JYR1Su$8MS%O%CS+ZDES#nsiS@KwNk&FNtAJ3A{Qoy3hQpi%oQp{3 zDFG)y^sCmhU^)O~c`4X>kRq7%xh#1&tS@3IM6m$g+oJJyl;q`wa%>R#Bp0I$zpp&J8rJJP-9tNNg=w<0=nZPoUWfIF|mMP#c zn87lgWhTokco@uQS-|p?Wg*KVa40MXhr>#6IINj`R#dfqEz4<^<18mwPO=cT!nfQ=E*xOw^{D7+{N%DC|5lLXBQ$! z0hVW|aC5WRM#lPmtP@x#vhHU+zulD!tn*nHur6d>#JZSu3F}hUWvt7gs!y_>Vm%Gla|Xqvv#jS> z&$C`&y~uir^)l;~$(tpP%UQ5lv01X&uvxR&vDvcOvpKM-u&T1Ev8uCbuxheSo*^ld z;m>BkYRGEDYRqcFYRVeG7RVOFX2ojFYQq}L=FIBC>dNZI>dxxH>c#5K8p7to>dP9+ z=Ev&K8o(OJ8pImR8p0aN8payV8o?UI7S0yI7ReUH7R?sJ7RwgN8pjsJ8qFHR8p|5b zHd#i>$-SO6fi00Oi7lBeg)NmWjV+z6iM5%vg|(G6gDsOSi!GZihb@;ak1dZapDmxQ zfUSV7kgbTVn5~4Zl&zGljIE5VoUNR#V)9ZcL%|7b6WAuQO=6qOHic~}+cdW6lV3_{ zP8N{Xso%l2gKa0vwUFr$nuHhJIh~|&n$mf{<8dG`N{Hw zi@Dlhl+!ET&zs2oU8(@ z0<8a7{^4GJnvGTKWuyU|+vof=Cv$C@CvhuR>vGTF9u=23-uu8Kku`07l zv&yk5vdXh6K>32KLaf59B1qyORWLQkY?w+3R!LSVR#{e2Rxws_RvA_pzaA!F#tMo^ zTUJkS zFhUI)^1j8 zvLJDDoHC&N>c?8|56+ahwUg$QcGgZDj)BO)N)uQSV(y34eGtW3tlF%g@&@8k+zy4P zwr7oGjhU<{FV0@i>VU*{WQ}5tg^D{Nu}M;2U(X6De26D|So>J}StqehW1R;sq9H{% zNNh6ebg-z743&Q93ooZ&pHe2W{6S!IM`EJmp~0)0ySm= z>r$x5MAoHHF^~fx<{+E|;m>46IBqdiADFHO`xWAriBJiUF%S`$CIk&JZYt|>s9Fer z0+fer0z?Mk5L6SVvYr6zsb2-AKvghA0m6u*a5uvY+0TkB22nqi^)S@;5DO=;9%MZP zH4_%(`&g%eD}0Cwm}#q7*RZawXI;m-o^>PZCf3cYTUfWTZfD)Wx|8()lJX6#TUmFr z?qS^vcg|GSBPdqxVx0ix!z=`a-~y=Fbk_N-umm}ubve{&FjoC4sw6;2SipQX6>14Y z6r1B9GP79c*F#+i(+ZrGIzlJz?4ebxu8k6E9y%CS9TRb+d_`hr!K?J27Q+e6lutTJp*SmoJXv3_9v z$oh%(GwT=DU#tvlY-~JiLTqnX-?F}Aeb4%p^*1Xc8+$z)FPkviH`YI_Ol%x%d~70Y zuUUVv{$pif<6;wF6Jz_y`k$4Rjhju7O`PpJ>t9x8HcmEvHc>VSHYGM?Hfc6BHc2)W zHYqlBHdQuTHaj*GHY+x3HWP4r7sLngKy6<=Hhne&HbXWeHe)thHVrmSHZ3-7HXXKl zT{crTGd6QJ3pCBRH0ZL~fvo@;YQkm$*9~I(gWJrIMnNbWs5K001xK^Svtey=)w33} z=AdYcU?r%DY&{Nao@`!V+iajMo_bJA9@P3G&Qdab$Xd*r!G_a|^|%5CzcvE8>@oa_ z%bWGs8o?mE^MxBZfxFcK5V{her%AgG`dQ3K4F~z3oiu2 diff --git a/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin b/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin index b8b1c1bc331065caf1f2d941efba2936b9b93781..82384bba73ea54da1551a99d049f3ae03b4fca33 100644 GIT binary patch delta 14 WcmbQVjp_GRrVVc0n`67T@&f=i1_s># delta 33 pcmeypm1)v8rVVc0LR<{mI=T!2ybJyW@Nf9f#lXO@*|B>UKLE`F3wHnj diff --git a/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin b/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin index d69326b438221a25827e451da343a87dfda4bb4d..423b9266b9dc1a5d8ad14ad356066c5a9292cad8 100644 GIT binary patch delta 175 zcmeBB?NHq?hgXo1fq{Xaje&uMfq_Aoje&u2^HN@SMnfhB1_nDe1_luA0HvLvv^IBeaMngsh1_oO;1_qF@J(PBY(#}xY6-v8<=*_D9 z<&2ylZ53edQUQBLM-X=rh|9phumnmkgVHOY^eQO521>7k(i=eZWL2Sf9*`;f*ciY7 E0Db2X(EtDd diff --git a/core/rexcode/isa/arm32/tables/arm32.entries.bin b/core/rexcode/isa/arm32/tables/arm32.entries.bin index ccd0cc8913a09ce0e5a2b1b0ce2c9a1fbba00542..a9c8a794db860e50e2bbd2f4ada98580b68b0c81 100644 GIT binary patch delta 1305 zcmbQVjp_GRrVW*XlP3uBOwJP&-#kZ9i*@o{F&?pWMlLQc25lW(1_w5QPXYWJ{tGZL zFin0T7Rb#j@JWDw!+${r2HwfK;u4!<#C;hjACTagJWoP=^BIYyOp`mLc_*h!i*KGP z{g!d^Oj+K^oFY723SeCV3=GVhm&&#?P2Q|1KG|78fsti$qM{f#U&E&l{5$>$FfedV zR#Q}(q$DwUqJlU#2V9tI@+k$W$$5$jlRXv1Crc}eGctfQPEJr1pWLS?K6!7b%HP zzM#Z6Ia^6@a-g#4WG-d#$!W@#lk-$~Ca+fJW@Ml2s3JCbzOwjaO%=Y$Yn8<(`>BXe zzO5`ixn7xb@>ylR$>u5wlYcAoOx~l)&B#01PE~huld9_E_bLjLkE<$A_EhDbyg?P@ zQae?#$=RxWlVw#oC!bOgpWLb)s$#3n&{da!8z`q})n3+MGk&BCgL0gxB!GU=rOqdZ_m>sT~k3pP~laql#LyLid z0ZH{_RR{ga*$zCD_c-WHE_cx5g6m+OeAmI6Yb(rLrpZcBe6qYVrxNRKm>NEY0)$p1;mNGd`jaO(i%(8+ z)|}CtW`LU_ zJb9Ok^<*no?n$nClU-evxwgSHh)j-lHROav%Yn&LU6m*Qbrqld%vE{vZCCEeB5pm} zTwDSS+PaJk4ve5k+YO3KPKG!}PEG*^4J}3n1|;FhbKRu4;Obc?o46}Y{^jO6IoDls za)i71Eo%JPCIBc92EFlQTW^Cm-{O z6XD`xV9@qsU~u38`4%iGI$6skDIu1FkOD^(Sc-LWt*3-o zF5ET-Hn=Xv$*Vo3Cg1Ulne6W+I@!!id~%A{+sPT;c065-oIIQi8Xj5<3|x~pd26z| zYcV)*PCn_aIeD$Oz+@($36od)h)!&o?(NBDGo1ggPd_VEcbN!lxHk&1`6`B02RAlml LQt{1vWh|-yYSfk| delta 1198 zcmeypm1)v8rVW*XjBJyW1(i0>5!7Oxd{>NT@@_Hl$uGqMxH$wq3Gi?DFTlXSHCb0& zVsnhRFC!z{CQpsl0J5WuGJDFC9JdGi$McZ`!~%JNRG zkQLv&Oty__@>vD($<7K2lRXvrCZAGNn7m&>d~%4 zZf3YG+>^aklo>fEJF19Hp0CU^d5)jGnHC+LVz zzN#ZWd7qB><~KTWj64C%44(t#H-h4Yb@G2*iOqU?(JYKylZ%a%Hm@<_+Xy`I9I56#k>0z17;iNyg#z}8-s*~d62q)gj2b~NiuW?eC{L6`N zvYE5aWLalP5iTwU25nsih6Aj-VH)`+S2*iWPI4BXyxci(GQW$`o47V7rvQV779#@#BPcL;gTj`RA&!xY zOMpRJmyyAN6%PqI6$E)|)4vQ&KY_fi&B0CsAGVgLXD diff --git a/core/rexcode/isa/arm32/tables/arm32.form_idx.bin b/core/rexcode/isa/arm32/tables/arm32.form_idx.bin index a7ff273fd27061531a4b16f108b8e56baab75024..2d7c1345ac45590fc8098b52b3c759df1e1a3223 100644 GIT binary patch delta 601 zcmew(^-F3)3nMcp1M}o|#$sM>1{MYu1||ju24)7f$?QzB%v=nNlhv85nOPY)C#N!L zGjlL7O`gnTSuemK&%n8HDSQ$7N7#Tor;9?MD;AUWF z;9_87U}fNE;ALQD-~{UuVBllmVc?kT%{*0^nSqgk5#&;^Dpm#t21c;UL9Pd3UIzBb z%q)q_EDX$>(^-@m>sc6>8Q8(jU}9in-~hAO88{eN7}&rL;9_8edY%=`Vu2dT!~kM3 zfvp2M6l6FkkRaAGf%SkK!pgt`b`Z!ZAU(_s3=AL|Vj5#T*mW!ntYFJPjsZ!6LWhBY zn}Lgghk=)Yhk=iQmw}&w2kdJ;20;dpkNFt{8Tc9a7zE%}LHr5|OE$2tSs5Ufft&%8 zgE$9bK8W;XhHHno9^@C0HV6g} delta 601 zcmew*^+#$$3nMc#1Lx#+#$sL;25trx1||ju1~vxf$?QzB%!~|Nlhv85nK>C)C#N!L zGcz%8OrFeSSue~W&%n(f$so%h&A`tf#30Tf#UR4K%OJ+U!@$QN!yw2Yz`(^I!63&V z$^Zh~3``8n4D1XH3@i++44e!c42%qH3|tHh44e#146F>?42%q14D1Zd3@i*B3~UTc z3_M^q9|IfMEDi>422KWc1}+9(237|C$==LUl^GeB8JNN5uraVQure?(FfuSOFvBrB z1Mg&JmPBS|2A0j~EXs`a>|jT*GO#ePF>rv5<6vM0I|pPT3)ne~3{2nvUke?aA4g?tw3PVtsf<#%Nq97+Qf}IPp z38V^Y1%ofhLWo;IE(aL{(g+JOkSs_!2!nhD(gyM+NC(K*5HS!BZ2ab{Y;zeW7jRTD YGH!m&5zIJQjYDLzAG^fnEG_|N06GU9V*mgE diff --git a/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin b/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin index 26c21d90ba50c381c93b9600c9fa1d3b43b11ce1..cc085ffb0472f4d98580e2001bc4120ecf2e8c42 100644 GIT binary patch delta 202 zcmZqRXyDkO#az$L;K<3r;K|9x;Lpj%5X#BTkif~tkjBZvkj2TukjKf!P{PT=P{GN< zP{YZ>(7?&U(89^W(80;V(8I~XFoBbaVG<`3!xT;yh8dhJ40AY{80K*@F)ZK|X4uTh z$8eBSnBfX1Kf_~AL544!ybO$7LJY!O{0vH5d<+I$+zi%sTwDyUT+s{*xcC{?b8$25 z;^JXA#udY$#Ldj0%FWE6!OhH|&CSf9$IZ-O$j!`P!p+QJ&dtnV#m&fI&CNLZKC>hM Dv^N|j delta 223 zcmZqRXyDkO#az$B;Ka$n;Kj+t5WvaC5XQ;Fki^Nxkip5qki*HsP{7H?P{zr^P{ql@ zP{+x_(8S5Y(8kHa(8bBZ(8tNbFo~0iVG1V`!!%A7hFP2}4D&dd7#46cF)ZQ~X4uNf z$8eZanBf{HKf_Z_L56RfybR1-LJXo@{0u5wd<;fh+zhtiTwDz9T+s}RxcC`1a&a^4 z;o@O9!4<=x!p+Q}&dtoA#m&s1%gxMSz|G8H%+1VT#?8!N$<54Q!_CNG%gxAO$IZxK Y&&|l-z|F|u$j!*$#LdXy%+1IE04a|g*8l(j diff --git a/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin index 44ceecb730684015bfeae49fe012e85f5279793a..891d83a0e27ff636d41d6f814c10669c58edeb7f 100644 GIT binary patch delta 148 zcmZo*YG6`#uT=4E7X;bmlS<7H&<=VfFF z;ALb8tA=4E6E;bmk9ne;boeb z?j6R+(8 UBf~OYW`>o#j0~%I85wW^0JbWx*o^#7Hu<@ud=r^1oDV5r1H2ktl<%7 JILuSW006Fw2a*5) literal 512 zcmZP=1;Z)?T)4#rai$Z(jKk>Ln0Bg0W%Muua& zObjP@85vIUGBTXvWn?(b%gAtsmkGnK=XeL>*bC3;w!pjKfKILU(c*e`f@SK;C;RTX7 zNWn{9Muu0sj0~@l#NY5TF}&ktWO&cZ%%NMuzXa>x zV6fm5XYl6}V@TzbWoY6PXPC(+#;~4GjNvGsEW;x{8HRs+JPcg?ybR*}LJXSx(hM&A zybOW-Vhrj0;tX~C{0zPP{0wvW`59L8^E2$?=Vv&{&(Cm!pP%75KR?4aerATB{LBo0 z_?a30^D{Fr2{1FT3NSNp2rx5n3otYA32-w=3UDzf3ve)K3ve(P3ve)43$QXc2(U7^ z3a~PG39vB)2(U4P39v9k39vB439v9E2{1FH3a~I_3a~Kb3a~Sj2(U9$3$QUX3a~M> z3$QZu2(U0r5MX7PD!|GxOMsPOz5oluVgVM0YXn#sHVUvXY!zT(*eSrmuvdVU z;gA3e!!ZFChEoD84Ce$`87>PjGh7p3VYns0!f;Q3mEo}f3&V2(7KYaXEDY}jSQ)+u zFf)7?U}5+zz{2offQ^AwkcEL$kd1*~kcB~5kd;9~keNYRkc~l6kcB~2kexwCkcGiO zP?*74kdwhjkd+}&keMMwkd+})kcA;ukc}Z(kc}Zzkd+}%kd>iWkd2{Ikd>iMkd>iX zkd>iBkd2{Fkd0xAAPd6`K^BHNf-DRR1eqBY3$idQ7i3{rEy&8SL6DVUs~`)*PC*ui zy@IR^hXh#|jtR0doEBtdxFE>Na8;0n;ie!9!(BmEhDU;|49^8w7+wpqFuWIJVfZY_ z%J4&wh2f7N3j>1?3j>P~D+8wxGXswh3xj|V3xkLdD}$sE3xli>3xlE%3xlc zF)_3VF*39YF*39XF*39x$%E2#rw}CnbwO#67&7jLs_(@j-zUV(Fj0t!VX_c2!!#i# zh8aT446}up80JFN&J*HdSRus4ut|uGVTTYS!%iVKhW$cp3`d37z*d|VVg}R5#5t&5 zkl1-4MurPQj0_ir7#S`JF*00+%3XodSA`fEt_d+RTo+RJX0)wQ8AcK~O zAcM7tEJK8dJVUvN5JRVk6vJW>1%|^S!VK3$gcx3k2r~Q>5oF*J6=skX6=KjA6=ZM_ n6=Vn$Wnl;vWnqXEWnqXF6=cX0Wnm~1Wnm~2Wnrii6=VPalcmM^ 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)sjPR`aqkY~*EP z*v!kwu!WbAVJj~q!!}+rUg$Z(XGk>MCGBg1iCMuro- zObn-Z85vIVGBTXuWn?(Z%gAt!mkGnK7kC*NF7h%mT;gS9xXjDQaD|tV;VLf^!*yOp zh8w($3^#e%81C~jF+AjDWO&5O$ncn#k>LpzbC3;w#>)ujKIdg*c)`oa@RFC2;T4iN zNWp7fMus=Mj0|s)#NY8UF?`@wLq49W%xNb#{S$RY8S z_#_yt_{13k`NSB~`D7Vd_{14z^NBHRVoVHdV(wr zMuNf&u7aEleuAtF!Gg>TVS=m-(Sj@t@q%m&se)__*@CPL1%j*$rGjh>)q<=H4T7u; zt%9r!U4m>369m~9rU|kz%o1c_m?y}>ut<=ZVW}Vs!%9IGhP8sM44VX58MX_uFzgm& zVc0Lo%5X%Gh2exCE5lhqR)$N0tPIx$Sr~2$vM}5iWMz0F$jb0ikcHu`APd7sK^BIu zf~*X`1X&pV39>LS39&G+39&M83o$eB39&E;39&GU39&Lr3$ZZB3$ZXL3$ZY$3$Zfj z2r)D03$ZX53$ZYm3$ZfT2(d6Y2(d7@2(d7D2(d8u2r)DG3$ZW+3$ZYS3vn>S3$ZXH z3$ZYy3$ZX{3$ZZd3o$bk39&Gg39&L%3o$a(2r)9$3NbR&2{AD=2r)7=3L(;Uvk)Ug zix3k-n-C*IyAUHohY%w}Cz3oUO?L}H@?Q^>28ki#Ua0zhEbDJuF)>UPVrG~j z#KbU5h?!xo5EH|EsM-ZWTnwv(xEQtwu`%otVr1AY#Kv$?h>hX65F6NvvqH>Z8kx8N z)e924D8$HcNr;i*vJfM~6(L53t5CUXQ2M$MBf||LMuwY0%nWygm>KR1F)}<5Vq|zI z#KiDeh>78;5Ie&gA#R56Ld*=mgqRur3b8Y=2(vSA3o|kB3M0aaUzm|WKo}AZAbXLq zpfC%As4ydg7#4YPVHpNvVJQY*VJU`mVFiYEVOfSH!qN=;g{2v82`e)E7FJ-877=97 z5fNmt6_I6#5|L-96cJ+R7Lj6DDx$z}R79BJhKLZuD-l74-y(txJfgx3@}fcvhN6ND oPNISg!J;e-;i4=I(V{F2@uGqZ1)?krC88`06{0K*HKKwH0A